格式化数字字符串

时间:2016-04-19 06:51:25

标签: .net c#-4.0

我想格式化一个整数,以便它出现在1000的分隔符(,)

到目前为止,我的尝试是:

String.Format("{0:#,###.##}", 1234.0);            // 1,234
String.Format("{0:#,###.##}", 1234.05);            // 1,234.05
String.Format("{0:#,###.##}", 1234);            // 1,234

我正在努力将值显示为输出1,234.0 .. 你能否建议我如何输出字符串1,234.0 ??

1 个答案:

答案 0 :(得分:3)

我理解你的问题的方式:

  • 你想要整数面上每3位数千个分隔符
  • 您想要小数侧的1位数

另外,我猜是

  • 您希望整数方面至少有一位数字

您使用的格式字符串的问题在于您使用#指定数字位置。 According to the documentation,此字符表示:

  

取代"#"带有相应数字的符号(如果有); 否则,结果字符串中不会出现数字。

(我的重点)

另一方面,0字符:

  

如果存在,则用相应的数字替换零; 否则,结果字符串中会显示零。

(再次,我的重点)

所以你应该使用一些0而不是#

具体来说,这是我根据本答案顶部的3个要点使用的格式字符串:

#,##0.0

这意味着:

  • 逗号表示"添加一千个分隔符"
  • #,##0因此意味着"在此处为整数部分留出位置,必要时添加千位分隔符,并且仅在第一个之后添加数字(如果需要),但始终添加至少一位数字,以便您不会因此而获得.1"
  • .0表示" 1小数位"
    • 您的.#表示"如果小数位数不是0,则添加小数点和小数位,如果小于0,则不要添加",这可能是格式化字符串的主要问题

这里有.NET Fiddle来试用。