【问题标题】:C# Numeric formatting questionC#数字格式问题
【发布时间】:2023-03-27 02:21:01
【问题描述】:

我有这些号码:

5.25
10251.35
5

我希望它们使用组进行格式化,并且始终使用 2 位小数,XX

这就是.ToString("N2") 所做的:

5,25
10.251,35
5

我怎样才能使 '5' 看起来也像 5,00 ? 当然,对于多种文化(en:5.0,de:5,0 ...)

其实这个问题没有任何意义,N2应该不惜一切代价去做。问题出在我的 WebServer 上。

【问题讨论】:

  • 什么,Jn Skeet 没有回答?必须在他的茶歇时间。
  • 臭小子,把‘O’键粘在那里。
  • 我不敢相信你还记得我......
  • 据我所知你不应该冒犯

标签: c# formatting numbers


【解决方案1】:

这不适合你吗:

decimal d = 5m;
string formatted = d.ToString("N2");

这将使用当前的文化,但您可以指定一个:

string formatted = d.ToString("N2", new CultureInfo("fr-FR"));

【讨论】:

  • 这就是我正在做的。但它不显示 12.510,00。它只显示 12.510
  • 12510m.ToString("N2") 为 en-US 返回 12,510.00
  • 如果确实如此.. 一定是非常错误.. 因为当我将其粘贴到我的代码中时:12510m.ToString("N2") 它只是打印 12,510
  • 我为 en-US 设置了文化设置
  • 好的,但如果你说它应该用小数输出,那么我接受它。一定是其他地方有问题..谢谢
【解决方案2】:

.ToString("{0:#,0.00}")

注意:虽然这使用美国分组和小数符号,但结果将是区域设置感知的,假设您当前的用户区域设置正确或您将区域设置传递给 ToString()。

【讨论】:

    【解决方案3】:

    IIRC:

    toString("0:0.00");
    

    MSDN

    【讨论】:

      【解决方案4】:

      使用您拥有的格式(定点),您应该使用:

      .ToString("F2");
      

      这里有所有格式:MSDN

      【讨论】:

      • 其实我想要N和F的组合,而不仅仅是F2
      猜你喜欢
      • 2014-10-23
      • 1970-01-01
      • 1970-01-01
      • 2010-11-24
      • 1970-01-01
      • 2013-12-05
      • 1970-01-01
      • 1970-01-01
      • 2021-01-02
      相关资源
      最近更新 更多