2
NumberFormatInfo numberInfo = CultureInfo.CurrentCulture.NumberFormat;
double result = Convert.ToDouble("2,75", numberInfo); 

result = 2.75

我当前的 UI/文化是“de-DE”。

为什么我没有得到 2,75 ?

4

3 回答 3

5

因为你得到的不是string结果,而是double. 以后如何显示该双精度不受上面代码的影响。

如果您想在屏幕上看到“2,75”,您需要将 double 格式化为字符串,并添加 numberInfo。

于 2012-10-24T12:58:07.387 回答
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
于 2012-10-24T12:57:28.883 回答
2

你得到2.75. 只是显示数字的方式不同。

double值不包含有关格式的信息。既不是2.75也不是2,75,它只是一个数值。

如果您使用使用逗号作为小数分隔符的区域性显示数字,您将得到您期望的结果,例如:

Console.WriteLine(result.ToString(CultureInfo.GetCultureInfo(1053)));

输出:

2,75
于 2012-10-24T13:00:28.490 回答