ToString("0.0##") 的特定于文化的等价物

Culture-specific equivalent of ToString("0.0##")

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

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

也是如此

证明:

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

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

输出:

1234,567

来自 MSDN(强调已添加):

The "." custom format specifier inserts a localized decimal separator into the result string. The first period in the format string determines the location of the decimal separator in the formatted value; any additional periods are ignored.

The character that is used as the decimal separator in the result string is not always a period; it is determined by the NumberDecimalSeparator property of the NumberFormatInfo object that controls formatting.