我希望能够格式化美国和欧洲风格的数字(双精度型)。根据用户的选择,数字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/