C# - float.parse ignores dot



我有一个文本框,它被绑定到一个字符串变量。输入是5.5我需要字符串变量来计算一些东西,但我注意到float.parse(stringvariable)忽略了点(使其成为55)。

有办法解决这个问题吗?

谢谢

这是由于您的默认区域性信息。要接受.的小数点,可以这样做:

float f = float.Parse("float value as string", CultureInfo.InvariantCulture);

但是如果你希望使用,那么你可以指定你可以指定一个文化,就像这样:

float f = float.Parse("float value as string", new CultureInfo("fr-FR").NumberFormat);

显然可以是任何文化,不必使用法语!

正如Tom Dee所说,这个问题与您的System.Globalization.CultureInfo设置有关。

您可以通过设置

来修改当前线程的设置:
  • CurrentCulture
  • CurrentUICulture

Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture;

Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("it-IT");

到您需要的CultureInfo对象,以及为Parse方法使用正确的重载,前面强调了。

最新更新