C# - float.parse 忽略点

时间:2021-02-01 16:33:03

标签: c# string parsing mvvm

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

有没有办法解决这个问题?

谢谢

2 个答案:

答案 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 设置有关。

您可以通过设置为当前线程修改此项:

  • 当前文化
  • 当前的UICulture

 Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture;

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

到您需要的 CultureInfo 对象,并使用前面突出显示的 Parse 方法的正确重载。

相关问题