`

C# String.Format大全(1)

    博客分类:
  • C#
C# 
阅读更多

变量 .ToString()


字符型转换 转为字符串
12345.ToString("n"); //
生成 12,345.00
12345.ToString("C"); //
生成 12,345.00
12345.ToString("e"); //
生成 1.234500e+004
12345.ToString("f4"); //
生成 12345.0000
12345.ToString("x"); //
生成 3039 (16 进制 )
12345.ToString("p"); //
生成 1,234,500.00%

 

string.Format 格式化时间,货币

1 、格式化货币(跟系统的环境有关,中文系统默认格式化人民币,英文系统格式化美元)

string.Format("{0:C}",0.2) 结果为:¥ 0.20 (英文操作系统结果: $0.20

默认格式化小数点后面保留两位小数,如果需要保留一位或者更多,可以指定位数
string.Format("{0:C1}",23.15)
结果为:¥ 23.2 (截取会自动四舍五入)

格式化多个 Object 实例
string.Format("
市场价: {0:C} ,优惠价 {1:C}",23.15,19.82)

2 、格式化十进制的数字(格式化成固定的位数,位数不能少于未格式化前,只支持整形)

string.Format("{0:D3}",23) 结果为: 023

string.Format("{0:D2}",1223) 结果为: 1223 ,(精度说明符指示结果字符串中所需的最少数字个数。)

3 、用分号隔开的数字,并指定小数点后的位数

string.Format("{0:N}", 14200) 结果为: 14,200.00 (默认为小数点后面两位)

string.Format("{0:N3}", 14200.2458) 结果为: 14,200.246 (自动四舍五入)

4 、格式化百分比

string.Format("{0:P}", 0.24583) 结果为: 24.58% (默认保留百分的两位小数)

string.Format("{0:P1}", 0.24583) 结果为: 24.6% (自动四舍五入)

5 、零占位符和数字占位符

string.Format("{0:0000.00}", 12394.039) 结果为: 12394.04

string.Format("{0:0000.00}", 194.039) 结果为: 0194.04

string.Format("{0:###.##}", 12394.039) 结果为: 12394.04

string.Format("{0:####.#}", 194.039) 结果为: 194

下面的这段说明比较难理解,多测试一下实际的应用就可以明白了。
零占位符:
如果格式化的值在格式字符串中出现 “0” 的位置有一个数字,则此数字被复制到结果字符串中。小数点前最左边的 “0” 的位置和小数点后最右边的 “0” 的位置确定总在结果字符串中出现的数字范围。
“00”
说明符使得值被舍入到小数点前最近的数字,其中零位总被舍去。

数字占位符:
如果格式化的值在格式字符串中出现 “#” 的位置有一个数字,则此数字被复制到结果字符串中。否则,结果字符串中的此位置不存储任何值。
请注意,如果 “0” 不是有效数字,此说明符永不显示 “0” 字符,即使 “0” 是字符串中唯一的数字。如果 “0” 是所显示的数字中的有效数字,则显示 “0” 字符。
“##”
格式字符串使得值被舍入到小数点前最近的数字,其中零总被舍去。

6 、日期格式化

string.Format("{0:d}",System.DateTime.Now) 结果为: 2009-3-20 (月份位置不是 03

string.Format("{0:D}",System.DateTime.Now) 结果为: 2009 3 20

string.Format("{0:f}",System.DateTime.Now) 结果为: 2009 3 20 15:37

string.Format("{0:F}",System.DateTime.Now) 结果为: 2009 3 20 15:37:52

string.Format("{0:g}",System.DateTime.Now) 结果为: 2009-3-20 15:38

string.Format("{0:G}",System.DateTime.Now) 结果为: 2009-3-20 15:39:27

string.Format("{0:m}",System.DateTime.Now) 结果为: 3 20

string.Format("{0:t}",System.DateTime.Now) 结果为: 15:41

string.Format("{0:T}",System.DateTime.Now) 结果为: 15:41:50


更详细的说明请下面微软对此的说明或者上 msdn 上查询。

微软 MSDN string.format 的方法说明:

名称 说明
String.Format (String, Object)
将指定的 String 中的格式项替换为指定的 Object 实例的值的文本等效项。
String.Format (String, Object[])
将指定 String 中的格式项替换为指定数组中相应 Object 实例的值的文本等效项。
String.Format (IFormatProvider, String, Object[])
将指定 String 中的格式项替换为指定数组中相应 Object 实例的值的文本等效项。指定的参数提供区域性特定的格式设置信息。
String.Format (String, Object, Object)
将指定的 String 中的格式项替换为两个指定的 Object 实例的值的文本等效项。
String.Format (String, Object, Object, Object)
将指定的 String 中的格式项替换为三个指定的 Object 实例的值的文本等效项。

标准数字格式字符串

格式说明符 名称 说明
C
c
货币
数字转换为表示货币金额的字符串。转换由当前 NumberFormatInfo 对象的货币格式信息控制。

精度说明符指示所需的小数位数。如果省略精度说明符,则使用当前 NumberFormatInfo 对象给定的默认货币精度。

D
d
十进制数
只有整型才支持此格式。数字转换为十进制数字 (0-9) 的字符串,如果数字为负,则前面加负号。

精度说明符指示结果字符串中所需的最少数字个数。如果需要的话,则用零填充该数字的左侧,以产生精度说明符给定的数字个数。

E
e
科学记数法(指数)
数字转换为 “-d.ddd…E+ddd” “-d.ddd…e+ddd” 形式的字符串,其中每个 “d” 表示一个数字 (0-9) 。如果该数字为负,则该字符串以减号开头。小数点前总有一个数字。

精度说明符指示小数点后所需的位数。如果省略精度说明符,则使用默认值,即小数点后六位数字。

格式说明符的大小写指示在指数前加前缀 “E” 还是 “e” 。指数总是由正号或负号以及最少三位数字组成。如果需要,用零填充指数以满足最少三位数字的要求。

F
f
定点
数字转换为 “-ddd.ddd…” 形式的字符串,其中每个 “d” 表示一个数字 (0-9) 。如果该数字为负,则该字符串以减号开头。

精度说明符指示所需的小数位数。如果忽略精度说明符,则使用当前 NumberFormatInfo 对象给定的默认数值精度。

G
g
常规
根据数字类型以及是否存在精度说明符,数字会转换为定点或科学记数法的最紧凑形式。如果精度说明符被省略或为零,则数字的类型决定默认精度,如下表所示。

Byte SByte 3

Int16 UInt16 5

Int32 UInt32 10

Int64 UInt64 19

Single 7

Double 15

Decimal 29

如果用科学记数法表示数字时指数大于 -5 而且小于精度说明符,则使用定点表示法;否则使用科学记数法。如果要求有小数点,并且忽略尾部零,则结果包含小数点。如果精度说明符存在,并且结果的有效数字位数超过指定精度,则通过舍入删除多余的尾部数字。

上述规则有一个例外:如果数字是 Decimal 而且省略精度说明符时。在这种情况下总使用定点表示法并保留尾部零。

使用科学记数法时,如果格式说明符是 “G” ,结果的指数带前缀 “E” ;如果格式说明符是 “g” ,结果的指数带前缀 “e”

N
n
数字
数字转换为 “-d,ddd,ddd.ddd…” 形式的字符串,其中 “-” 表示负数符号(如果需要), “d” 表示数字 (0-9) “,” 表示数字组之间的千位分隔符, “.” 表示小数点符号。实际的负数模式、数字组大小、千位分隔符以及十进制分隔符由当前 NumberFormatInfo 对象指定。

精度说明符指示所需的小数位数。如果忽略精度说明符,则使用当前 NumberFormatInfo 对象给定的默认数值精度。

P
p
百分比
数字转换为由 NumberFormatInfo.PercentNegativePattern NumberFormatInfo.PercentPositivePattern 属性定义的、表示百分比的字符串,前者用于数字为负的情况,后者用于数字为正的情况。已转换的数字乘以 100 以表示为百分比。

精度说明符指示所需的小数位数。如果忽略精度说明符,则使用当前 NumberFormatInfo 对象给定的默认数值精度。

R
r
往返过程
只有 Single Double 类型支持此格式。往返过程说明符保证转换为字符串的数值再次被分析为相同的数值。使用此说明符格式化数值时,首先使用常规格式对其进行测试: Double 使用 15 位精度, Single 使用 7 位精度。如果此值被成功地分析回相同的数值,则使用常规格式说明符对其进行格式化。但是,如果此值未被成功地分析为相同数值,则它这样格式化: Double 使用 17 位精度, Single 使用 9 位精度。

虽然此处可以存在精度说明符,但它将被忽略。使用此说明符时,往返过程优先于精度。

X
x
十六进制数
只有整型才支持此格式。数字转换为十六进制数字的字符串。格式说明符的大小写指示对大于 9 的十六进制数字使用大写字符还是小写字符。例如,使用 “X” 产生 “ABCDEF” ,使用 “x” 产生 “abcdef”

分享到:
评论

相关推荐

    c# string.Format 的用法

    使用c#的string.format 的一些常用的参数

    C#String.Format数字格式化输出 .txt

    在C#编程语言中,`String.Format`方法是一种强大的字符串格式化工具,它允许开发者以预定义的格式输出各种类型的数据,特别是在处理数字时。通过使用特定的格式化字符串,可以控制数字的显示方式,包括小数点后的...

    C#String.Format数字格式化

    ### C#中的String.Format方法与数字格式化 在C#编程语言中,`String.Format`是一种非常实用且灵活的方法,用于格式化字符串输出。通过该方法可以方便地控制数字、日期时间等数据类型的显示格式,这在实际开发过程中...

    C#的String.Format 范例

    ### C#中的String.Format方法详解 在C#编程语言中,`String.Format`是一个非常强大的字符串格式化工具,它允许开发者以高度定制的方式输出数据。本文将深入探讨`String.Format`的各种用法,并通过示例代码来展示其...

    C# String.Format格式化字符串

    C# String.Format格式说明

    C#String.Format数字格式化输出

    C#String.Format数字格式化输出;有比较详细的讲解。希望对大家有用。

    C#String.Format格式化输出.pdf

    在C#编程中,`String.Format`方法是一个非常实用的功能,它允许我们将变量或表达式的值插入到一个字符串模板中,以生成格式化的输出。在处理数字、日期、时间等数据时,`String.Format`提供了丰富的格式化选项。以下...

    C#String.Format格式化输出.rar

    本资源“C#String.Format格式化输出.rar”主要关注C#中的字符串格式化功能,尤其是`String.Format`方法的使用。字符串格式化是编程中一个非常重要的概念,它允许我们将数据按照特定的模板或格式进行输出,方便读取和...

    js写的string.format函数

    js 写的string format函数,功能模仿C#中的string.Format方法,已实现(整数 :D、小数:F、货币数字:C、科学计数:E 等4种)数字格式化。参数可以传递数组,也可以传多个参数。

    String.Format数字格式化输出

    在C#中,`String.Format`方法是进行字符串格式化的一种非常实用的方式。它允许我们对数字、日期、时间等数据类型进行精确的格式控制,使得输出更加符合需求或者易于阅读。本文将详细介绍`String.Format`方法中的几种...

    C# string.Format字符串格式说明.pdf

    `C#`中的`string.Format`方法是一种强大的字符串格式化工具,它允许程序员根据特定的格式将变量或表达式的结果转换为字符串。这个方法广泛应用于输出具有特定样式和精度的数值、日期、货币等信息。以下是对`string....

    C# String.Format格式化输出和ToString()的一些常用用法.pdf

    在C#编程语言中,`String.Format`方法和`ToString()`是两个非常重要的字符串操作方法,主要用于格式化输出和类型转换。本文将详细介绍这两种方法的一些常用用法。 首先,`ToString()`方法允许我们将一个对象转换为...

    C# String.Format格式化输出和ToString()的一些常用用法.docx

    在C#编程语言中,`String.Format`方法和`ToString()`方法是两个非常重要的字符串处理功能,用于格式化输出和转换对象的值。下面将详细解释这些知识点。 首先,`ToString()`方法是一个内置的方法,它允许我们将任何...

    C#中string.format用法详解

    本文实例总结了C#中string.format用法。分享给大家供大家参考。具体分析如下: String.Format 方法的几种定义: String.Format (String, Object) 将指定的 String 中的格式项替换为指定的 Object 实例的值的文本等效...

    C# String.Format格式化输出和ToString()的一些常用用法..docx

    在C#编程语言中,`String.Format`方法和`ToString()`是两个非常重要的字符串操作方法,主要用于字符串格式化输出和对象转换成字符串。下面将详细解释这些方法的使用及其相关知识点。 1. `String.Format`方法: `...

    JS仿C#的String.Format函数

    在JavaScript中,没有内置的`String.Format`函数,如C#中那样,它提供了一种方便的方式来格式化字符串。然而,由于JavaScript的灵活性,我们可以创建一个类似的函数来实现这一功能。`String.Format`的主要作用是将...

    JS写的仿C#的String.Format函数

    let formattedStr = stringFormat("My name is {0} and I am {1} years old.", name, age); console.log(formattedStr); // 输出 "My name is John and I am 30 years old." ``` 在这个JavaScript函数中,我们使用...

    WPF中StringFormat的用法

    本文将详细介绍 `StringFormat` 在 WPF 中的应用及其与 C# 中 `string.Format` 方法之间的相似之处。 ### 一、StringFormat 基础介绍 `StringFormat` 主要用于 `Data Binding` 场景中,它允许开发者自定义数据的...

Global site tag (gtag.js) - Google Analytics