NumberFormatInfo numberInfo = CultureInfo.CurrentCulture.NumberFormat;
double result = Convert.ToDouble("2,75", numberInfo);
result = 2.75
我目前的用户界面/文化是“de-DE”。
为什么我得不到2,75?
答案 0 :(得分:5)
因为您没有获得string
结果,只有double
。然后如何显示以后加倍不受上述代码的影响。
如果你想在屏幕上看到“2,75”,你需要将double格式化为字符串,添加numberInfo。
答案 1 :(得分:3)
试试这个获得2,75: -
string.Format(System.Globalization.CultureInfo.GetCultureInfo("de-DE"), "{0:0.0}", 2.75);
或者你也可以试试这个: -
NumberFormatInfo n= new NumberFormatInfo();
n.NumberDecimalSeparator = ",";
n.NumberGroupSeparator = ".";
double d= 2.75;
string s= d.ToString(n); //2,75
答案 2 :(得分:2)
你得到2.75
。这只是显示数字的不同方式。
double
值不包含有关格式的信息。它既不是2.75
也不是2,75
,它只是一个数值。
如果使用使用逗号作为小数分隔符的区域性显示数字,您将得到您期望的结果,例如:
Console.WriteLine(result.ToString(CultureInfo.GetCultureInfo(1053)));
输出:
2,75