【问题标题】:Missing decimal point when converting a string to a float [duplicate]将字符串转换为浮点数时缺少小数点[重复]
【发布时间】:2018-07-22 23:53:42
【问题描述】:

我测试了一个非常基本的程序,main 中只有几行代码。

 float x = 1;
 x =  float.Parse("4.5");
 Console.WriteLine(x);

输出为 45

由于某种原因,它省略了小数点。我的程序必须使用浮点数,我该如何解决?

【问题讨论】:

标签: c# string floating-point


【解决方案1】:

解析的工作方式取决于运行程序的系统的文化。可能是设置为显示语言的语言没有使用小数点作为分数分隔符。

如果您想使用使用小数点的特定文化(例如 US),您必须在 Parse 方法的第二个参数中指定它。

例如强制使用“en-US”文化:

CultureInfo culture = new CultureInfo("en-US");
double number = Double.Parse("4.5", culture);

你也可以使用不变的文化,你可以使用CultureInfo.InvariantCulture来代替。它大致基于美国文化,但并非完全如此(例如货币不同)。请参阅documentation 了解更多信息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-11-25
    • 1970-01-01
    • 2013-10-06
    • 1970-01-01
    • 2014-09-25
    • 2017-05-09
    • 2016-01-30
    • 1970-01-01
    相关资源
    最近更新 更多