我希望能够格式化美国和欧洲风格的数字(双精度型)。根据用户的选择,数字123123123.456的格式应为:


123,123,123.456 //美式格式
123.123.123,456 //欧洲格式


另一个要求是能够设置小数位数。我相信我可以使用double.ToString(string format, IFormatProvider provider)并将"F2"用作format,但是msdn似乎并没有太多地介绍IFormatProvider来解释我可以自己实现它。

double x = 123123123.456
IFormatProvider myFormatProvider = whatToDo ?
x.ToString("F2", myFormatProvider); // I need 2 decimal digits hence F2


我可以为此目的使用任何预制的IFormatProvider对象吗?或者,也许还有其他解决方案,我走错了路?

最佳答案

IFormatProvider myFormatProvider = new CultureInfo("en-us").NumberFormat;


要么

IFormatProvider myFormatProvider = new CultureInfo("fr").NumberFormat;


(仅在这里使用法国作为文化,但几乎可以是任何欧洲国家)。

关于c# - 如何在C#中格式化美国和欧洲风格的数字?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13049791/

10-12 06:44