.NET 中的数字格式化


每次用到数字格式化的时候,总是想不起来,还要上网搜索,在此记录,以备查询。

摘抄自 Standard numeric format strings | Microsoft Docs

格式指定符 名称 描述 示例
"C" 或 "c" Currency

结果:货币数值

支持:所有数值类型

精度指定:小数数字的位数

默认精度指定:定义在 NumberFormatInfo.CurrencyDecimalDigits

更多信息: The Currency ("C") Format Specifier

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"

Decimal

结果:带有可选负号的整形数字

支持:仅支持整数

精度指定:最小为数字的位数

默认精度指定:最小为数字的位数

更多信息: The Decimal("D") Format Specifier

1234("D") -> 1234

-1234("D6") -> -001234

"E" 或 "e" Exponential (scientific)

结果:指数表示法

支持:所有数值类型

精度指定:十进制位数

默认精度指定:6

更多信息: The Exponential ("E") Format Specifier

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"  Fixed-point

结果:带有可选负号的整数和小数

支持:所有数值类型

精度指定:小数位数

默认精度指定:NumberFormatInfo.NumberDecimalDigits

更多信息:The Fixed-Point ("F") Format Specifier

 

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"  General 结果:更紧凑的定点或科学计数法

支持:所有数值类型

精度指定:有效位数

默认精度指定:依赖于数值类型

更多信息:The General ("G") Format Specifier

-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" Number  结果:整数和小数位、组分隔符以及带可选负号的小数点分隔符

支持:所有数值类型

精度指定:有效位数

默认精度指定:NumberFormatInfo.NumberDecimalDigits

更多信息:The Numeric ("N") Format Specifier

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" Percent 结果:数字乘以 100 并以符号百分比显示

支持:所有数值类型

精度指定:所需小数位数

默认精度指定:NumberFormatInfo.PercentDecimalDigits

更多信息:The Percent ("P") Format Specifier

 
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"  Round-trip  结果:可以互相转换为相同字符串

支持:Single, Double, and BigInteger

注意:仅仅推荐 BigInteger 类型使用. 对于 Double 类型, 使用 "G17"; 对于 Single 类型, 使用 "G9"

精度指定:所需小数位数

默认精度指定:忽略

更多信息:The Round-trip ("R") Format Specifier

123456789.12345678 ("R")
-> 123456789.12345678

-1234567890.12345678 ("R")
-> -1234567890.1234567 
"X" 或 "x"  Hexadecimal 结果:16 进制字符串

支持:仅仅整数类型

精度指定:结果字符串中的数字位数

更多信息:The HexaDecimal ("X") Format Specifier

 
255 ("X")
-> FF

-1 ("x")
-> ff

255 ("x4")
-> 00ff

-1 ("X4")
-> 00FF