我有一个文本框,它绑定到一个字符串变量。输入是 5.5 我需要字符串变量来计算一些东西,但我注意到 float.parse(stringvariable) 忽略了点(使它成为 55)。
有没有办法解决这个问题?
谢谢
答案 0 :(得分:2)
这是由于您的默认文化信息造成的。要接受 .
的小数点,可以这样做:
float f = float.Parse("float value as string", CultureInfo.InvariantCulture);
但是,如果您希望使用 ,
,那么您可以指定,然后您可以指定这样一种文化:
float f = float.Parse("float value as string", new CultureInfo("fr-FR").NumberFormat);
显然可以是任何文化,不必使用法语!
答案 1 :(得分:1)
如 Tom Dee 所述,此问题与您的 System.Globalization.CultureInfo 设置有关。
您可以通过设置为当前线程修改此项:
即
Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture;
或
Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("it-IT");
到您需要的 CultureInfo 对象,并使用前面突出显示的 Parse 方法的正确重载。