.net core 中的标准数字格式字符串与自定义格式化字符串

标准数字格式字符串

 格式符简介
格式说明符属性说明示例
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”往返过程结果:可以往返至相同数字的字符串。

受以下类型支持:SingleDouble 和 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 °

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

破浪征程

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值