将字符串转换为浮点数时缺少小数点[重复]

Posted

技术标签:

【中文标题】将字符串转换为浮点数时缺少小数点[重复]【英文标题】: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

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

【问题讨论】:

尝试关注? float.Parse("4.5", NumberStyles.Float); 你想要Single.TryParse("4.5", NumberStyles.AllowDecimalPoint, CultureInfo.InvariantCulture) 我很惊讶 45 是任何文化中的格式 【参考方案1】:

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

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

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

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

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

【讨论】:

以上是关于将字符串转换为浮点数时缺少小数点[重复]的主要内容,如果未能解决你的问题,请参考以下文章

ValueError:无法将字符串转换为浮点数:E-3 [重复]

ValueError:无法将字符串转换为浮点数:在 python 上绘制图形

ValueError:无法将字符串转换为浮点数:'"r_version"' - 将温度转换为华氏温度时

ValueError:无法将字符串转换为浮点数:'Mme'

Android - 如何正确地将字符串解析为浮点数(价格数字格式:整数、小数或两者兼有)

创建 seaborn 热图时“无法将字符串转换为浮点数”ValueError