将字符串转换为浮点数时缺少小数点[重复]
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"' - 将温度转换为华氏温度时