NumberFormatInfo numberInfo = CultureInfo.CurrentCulture.NumberFormat;
double result = Convert.ToDouble("2,75", numberInfo);
result = 2.75
我当前的 UI/文化是“de-DE”。
为什么我没有得到 2,75 ?
NumberFormatInfo numberInfo = CultureInfo.CurrentCulture.NumberFormat;
double result = Convert.ToDouble("2,75", numberInfo);
result = 2.75
我当前的 UI/文化是“de-DE”。
为什么我没有得到 2,75 ?
因为你得到的不是string
结果,而是double
. 以后如何显示该双精度不受上面代码的影响。
如果您想在屏幕上看到“2,75”,您需要将 double 格式化为字符串,并添加 numberInfo。
试试这个得到 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.75
. 只是显示数字的方式不同。
该double
值不包含有关格式的信息。既不是2.75
也不是2,75
,它只是一个数值。
如果您使用使用逗号作为小数分隔符的区域性显示数字,您将得到您期望的结果,例如:
Console.WriteLine(result.ToString(CultureInfo.GetCultureInfo(1053)));
输出:
2,75