【问题标题】:String Format for up to 2 decimal places or simple integer and with thousand separator - C#最多 2 位小数或简单整数和千位分隔符的字符串格式 - C#
【发布时间】:2019-05-13 03:12:01
【问题描述】:

这是一个字符串格式,它将一个数字格式化为最多 2 个小数位,如果没有小数位,那么它将显示简单的整数本身:

String.Format("{0:0.##}", 123.4567);      // "123.46"
String.Format("{0:0.##}", 123.0);         // "123"

所以{0:0.##} 将完成这项工作。但我需要在整数部分有一千个分隔符。所以像1234.456 这样的东西应该像1,234.45。我知道{0:n0} 会做一千个分隔符,但是如何将它与小数位格式化程序结合起来?

【问题讨论】:

  • 不,它不工作
  • this 有效吗?它应该保留当前答案没有的语言环境。
  • @MaartenBodewes 你是在说我的回答吗,如果是的话,保持本地化意味着什么?
  • 好吧,如果我在那里查看其他答案,逗号和点现在严格用于千位和小数。这是不正确的,例如在 NL 中,点是千位分隔符,逗号表示小数。
  • @MaartenBodewes 在格式字符串中,逗号是区域设置的千位分隔符的占位符,点是区域设置的小数点的占位符。您将在不同的语言环境中使用相同的格式字符串获得不同的输出。

标签: c# string


【解决方案1】:
String.Format("{0:#,##0.##}", 123.0);

【讨论】:

  • 这对超过 9,999 的数字有什么作用?为什么# 后面有一个零?目前这只是一个代码答案。
  • @MaartenBodewes 零在那里,因为它最初就在那里,我只是在前面加上#,##。对于超过 9999 的数字,它将重复千位分隔符模式,并在每 3 位数字后插入一个。
  • @GSerg 伟人,谢谢。能否介绍一些学习字符串格式的资源?
猜你喜欢
  • 2018-05-11
  • 2011-10-20
  • 2018-06-22
  • 2022-09-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多