我测试了一个非常基本的程序,主要是几行。
float x = 1;
x = float.Parse("4.5");
Console.WriteLine(x);
输出为45
由于某种原因,它遗漏了小数点。我必须为我的程序使用float,我该如何解决这个问题呢?
答案 0 :(得分:2)
解析的工作方式取决于运行程序的系统的文化。语言可能设置为显示语言不使用小数点作为分数分隔符。
如果要使用使用小数点的特定文化(例如US),则必须在Parse
方法的第二个参数中指定它。
例如强制使用" en-US"文化:
CultureInfo culture = new CultureInfo("en-US");
double number = Double.Parse("4.5", culture);
您也可以使用不变文化,您可以使用CultureInfo.InvariantCulture
代替。它松散地基于美国文化,但并非如此(例如货币不同)。有关详细信息,请参阅documentation。