2009-07-30 146 views
5

如果我们使用C,N,P等内置格式,String.Format是否可以使用2种方式: ......它会将区域设置考虑在内? 如果我们使用自定义格式代码(如#,## 0.000),它将不考虑区域设置?String.Format是否考虑locale或不?

在我的代码中,我使用的方法是这样

的String.Format( “{0:### 0000}”,值);

因为我国使用逗号作为小数点分隔

但结果仍是:1,234.500,如果它认为作为点小数点分隔符。

请帮忙!

+5

你有没有打扰过看String.Format的文档? – 2009-07-30 02:35:42

回答

13

你想用CultureInfo

value.ToString("N", new CultureInfo("vn-VN")); 

使用String.Format

String.Format(new CultureInfo("vi-VN"), "N", value); 

既然你在河内是(从配置文件),我用越南的代码,这是vn-VN

2

This Works。

IFormatProvider iFormatProvider = new System.Globalization.CultureInfo("es-ES"); 

string s = value.ToString("#,##0.000", iFormatProvider); 

string s2 = string.Format(iFormatProvider, "{0:#,##0.000}", val) 

注意,,.使用的是“标准” EN-US风格,但.ToString()string.Format()与格式提供做正确的事。