标准数字格式字符串
格式符简介
格式说明符 | 属性 | 说明 | 示例 |
---|---|---|---|
B或b | 二进制 | 结果:二进制字符串。 受以下类型支持:仅整型 (.NET 8+)。 精度说明符:结果字符串中的位数。 | 42 (B) -> 101010 255 (b16) -> 0000000011111111 |
“C”或“c” | 货币 | 结果:货币值。 受以下类型支持:所有数值类型。 精度说明符:十进制小数位数。 | 123.456 ("C", en-US) -> $123.46 123.456 ("C", fr-FR) -> 123,46 € 123.456 ("C", ja-JP) -> ¥123 -123.456 ("C3", en-US) -> ($123.456) -123.456 ("C3", fr-FR) -> -123,456 € -123.456 ("C3", ja-JP) -> -¥123.456 |
“D”或“d” | 十进制 | 结果:整型数字,负号可选。 受以下类型支持:仅限整型类型。 精度说明符:数字位数下限。 默认值精度说明符:所需数字位数下限。 | 1234 ("D") -> 1234 -1234 ("D6") -> -001234 |
“E”或“e” | 指数(科学型) | 结果:指数表示法。 受以下类型支持:所有数值类型。 精度说明符:十进制小数位数。 默认值精度说明符:6. | 1052.0329112756 ("E", en-US) -> 1.052033E+003 1052.0329112756 ("e", fr-FR) -> 1,052033e+003 -1052.0329112756 ("e2", en-US) -> -1.05e+003 -1052.0329112756 ("E2", fr-FR) -> -1,05E+003 |
“F”或“f” | 定点 | 结果:整数和十进制小数,负号可选。 受以下类型支持:所有数值类型。 精度说明符:十进制小数位数。 | 1234.567 ("F", en-US) -> 1234.57 1234.567 ("F", de-DE) -> 1234,57 1234 ("F1", en-US) -> 1234.0 1234 ("F1", de-DE) -> 1234,0 -1234.56 ("F4", en-US) -> -1234.5600 -1234.56 ("F4", de-DE) -> -1234,5600 |
“G”或“g” | 常规 | 结果:更紧凑的定点表示法或科学记数法。 受以下类型支持:所有数值类型。 精度说明符:有效位数。 默认值精度说明符:具体取决于数值类型。 | -123.456 ("G", en-US) -> -123.456 -123.456 ("G", sv-SE) -> -123,456 123.4546 ("G4", en-US) -> 123.5 123.4546 ("G4", sv-SE) -> 123,5 -1.234567890e-25 ("G", en-US) -> -1.23456789E-25 -1.234567890e-25 ("G", sv-SE) -> -1,23456789E-25 |
“N”或“n” | 数字 | 结果:整数和十进制小数、组分隔符和十进制小数分隔符,负号可选。 受以下类型支持:所有数值类型。 精度说明符:所需的小数位数。 | 1234.567 ("N", en-US) -> 1,234.57 1234.567 ("N", ru-RU) -> 1 234,57 1234 ("N1", en-US) -> 1,234.0 1234 ("N1", ru-RU) -> 1 234,0 -1234.56 ("N3", en-US) -> -1,234.560 -1234.56 ("N3", ru-RU) -> -1 234,560 |
“P”或“p” | 百分比 | 结果:数字乘以 100 并以百分比符号显示。 受以下类型支持:所有数值类型。 精度说明符:所需的小数位数。 | 1 ("P", en-US) -> 100.00 % 1 ("P", fr-FR) -> 100,00 % -0.39678 ("P1", en-US) -> -39.7 % -0.39678 ("P1", fr-FR) -> -39,7 % |
“R”或“r” | 往返过程 | 结果:可以往返至相同数字的字符串。 受以下类型支持:Single、Double 和 BigInteger。 注意:建议只用于 BigInteger 类型。 对于 Double 类型,请使用 "G17";对于 Single 类型,请使用 "G9"。 精度说明符:已忽略。 | 123456789.12345678 ("R") -> 123456789.12345678 -1234567890.12345678 ("R") -> -1234567890.1234567 |
“X”或“x” | 十六进制 | 结果:十六进制字符串。 受以下类型支持:仅限整型类型。 精度说明符:结果字符串中的位数。 | 255 ("X") -> FF -1 ("x") -> ff 255 ("x4") -> 00ff -1 ("X4") -> 00FF |
测试代码
int value1 = 64;
//二进制
Console.WriteLine(value1.ToString("B16"));
//十进制
Console.WriteLine(value1.ToString("D4"));
//十六进制
Console.WriteLine(value1.ToString("X4"));
Console.WriteLine(Environment.NewLine);
Console.WriteLine("*".PadLeft(20,'*'));
Console.WriteLine(Environment.NewLine);
double value = 1000123.456789;
//货币
Console.WriteLine(value.ToString("C2"));
//小数点
Console.WriteLine(value.ToString("N2"));
//定点表示法
Console.WriteLine(value.ToString("F2"));
//百分比
Console.WriteLine(value.ToString("P2"));
//科学计数法
Console.WriteLine(value.ToString("E3"));
//通用格式 更紧凑的定点表示法或科学记数法
Console.WriteLine(value.ToString("G3"));
//很大的数字
Console.WriteLine(value.ToString("R"));
注意项
B,D, X 此三种格式符仅支持整型
自定义数字格式字符串
格式说明符 | 属性 | 说明 | 示例 |
---|---|---|---|
“0” | 零占位符 | 用对应的数字(如果存在)替换零;否则,将在结果字符串中显示零。 | 1234.5678 ("00000") -> 01235 0.45678 ("0.00", en-US) -> 0.46 0.45678 ("0.00", fr-FR) -> 0,46 |
"#" | 数字占位符 | 用对应的数字(如果存在)替换“#”符号;否则,不会在结果字符串中显示任何数字。 请注意,如果输入字符串中的相应数字是无意义的 0,则在结果字符串中不会出现任何数字。 例如,0003 ("####") -> 3。 | 1234.5678 ("#####") -> 1235 0.45678 ("#.##", en-US) -> .46 0.45678 ("#.##", fr-FR) -> ,46 |
"." | 小数点 | 确定小数点分隔符在结果字符串中的位置。 | 0.45678 ("0.00", en-US) -> 0.46 0.45678 ("0.00", fr-FR) -> 0,46 |
"," | 组分隔符和数字比例换算 | 用作组分隔符和数字比例换算说明符。 作为组分隔符时,它在各个组之间插入本地化的组分隔符字符。 作为数字比例换算说明符,对于每个指定的逗号,它将数字除以 1000。 | 组分隔符说明符: 2147483647 ("##,#", en-US) -> 2,147,483,647 2147483647 ("##,#", es-ES) -> 2.147.483.647 比例换算说明符: 2147483647 ("#,#,,", en-US) -> 2,147 2147483647 ("#,#,,", es-ES) -> 2.147 |
"%" | 百分比占位符 | 将数字乘以 100,并在结果字符串中插入本地化的百分比符号。 | 0.3697 ("%#0.00", en-US) -> %36.97 0.3697 ("%#0.00", el-GR) -> %36,97 0.3697 ("##.0 %", en-US) -> 37.0 % 0.3697 ("##.0 %", el-GR) -> 37,0 % |
"‰" | 千分比占位符 | 将数字乘以 1000,并在结果字符串中插入本地化的千分比符号。 | 0.03697 ("#0.00‰", en-US) -> 36.97‰ 0.03697 ("#0.00‰", ru-RU) -> 36,97‰ |
“E0” “E+0” “E-0” “E0” “E+0” “E-0” | 指数表示法 | 如果后跟至少一个 0(零),则使用指数表示法设置结果格式。 “E”或“e”指示指数符号在结果字符串中是大写还是小写。 跟在“E”或“e”字符后面的零的数目确定指数中的最小位数。 加号 (+) 指示符号字符总是置于指数前面。 减号 (-) 指示符号字符仅置于负指数前面。 | 987654 ("#0.0e0") -> 98.8e4 1503.92311 ("0.0##e+00") -> 1.504e+03 1.8901385E-16 ("0.0e+00") -> 1.9e-16 |
"\" | 转义符 | 使下一个字符被解释为文本而不是自定义格式说明符。 | 987654 ("\###00\#") -> #987654# |
'string' "string" | 文本字符串分隔符 | 指示应复制到未更改的结果字符串的封闭字符。 | 68 ("# 'degrees'") -> 68 degrees 68 ("#' degrees'") -> 68 degrees |
; | 部分分隔符 | 通过分隔格式字符串定义正数、负数和零各部分。 | 12.345 ("#0.0#;(#0.0#);-\0-") -> 12.35 0 ("#0.0#;(#0.0#);-\0-") -> -0- -12.345 ("#0.0#;(#0.0#);-\0-") -> (12.35) 12.345 ("#0.0#;(#0.0#)") -> 12.35 0 ("#0.0#;(#0.0#)") -> 0.0 -12.345 ("#0.0#;(#0.0#)") -> (12.35) |
其他 | 所有其他字符 | 字符将复制到未更改的结果字符串。 | 68 ("# °") -> 68 ° |