与文化特定的ToString相当(" 0.0 ##")

时间:2016-07-07 17:17:39

标签: c# string-formatting

我正在更改我的应用程序以允许特定于文化的数字格式,因此我将实例ToString("0.00")更改为ToString("F2")。但是,我没有看到任何标准的方法来做同等级的ToString("0.###")。我将如何以文化特定的方式实现这一目标?

1 个答案:

答案 0 :(得分:4)

实际上,格式字符串中的.只标识文化特定小数分隔符的占位符,因此ToString("0.###")应该可以正常工作。千位分隔符,和百分号%也是如此。

证明:

CultureInfo c = CultureInfo.CreateSpecificCulture("fr-FR");

Console.WriteLine(1234.567.ToString("0.###",c));

输出:

1234,567

来自MSDN(强调补充):

  

"。"自定义格式说明符将本地化小数点分隔符插入到结果字符串中。格式字符串中的第一个句点确定格式化值中小数分隔符的位置;任何额外的时期都会被忽略。

     

在结果字符串中用作小数点分隔符的字符并不总是句点;它由控制格式化的NumberDecimalSeparator对象的NumberFormatInfo属性决定。