我有一个文本框,它被绑定到一个字符串变量。输入是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方法使用正确的重载,前面强调了。