将字符串转换为float时缺少小数点

时间:2018-02-12 18:07:48

标签: c# string floating-point

我测试了一个非常基本的程序,主要是几行。

 float x = 1;
 x =  float.Parse("4.5");
 Console.WriteLine(x);

输出为45

由于某种原因,它遗漏了小数点。我必须为我的程序使用float,我该如何解决这个问题呢?

1 个答案:

答案 0 :(得分:2)

解析的工作方式取决于运行程序的系统的文化。语言可能设置为显示语言不使用小数点作为分数分隔符。

如果要使用使用小数点的特定文化(例如US),则必须在Parse方法的第二个参数中指定它。

例如强制使用" en-US"文化:

CultureInfo culture = new CultureInfo("en-US");
double number = Double.Parse("4.5", culture);

您也可以使用不变文化,您可以使用CultureInfo.InvariantCulture代替。它松散地基于美国文化,但并非如此(例如货币不同)。有关详细信息,请参阅documentation