繁体   English   中英

使用 AllowDecimalPoint 解析“1.5”给出 FormatException

[英]Parsing "1.5" with AllowDecimalPoint gives FormatException

当我尝试使用 C# 交互式编译器运行此代码时

double.Parse("1.5", System.Globalization.NumberStyles.AllowDecimalPoint);

我有这个例外

System.FormatException: Input string was not in a correct format.
  + System.Number.ParseDouble(string, System.Globalization.NumberStyles, System.Globalization.NumberFormatInfo)
  + double.Parse(string, System.Globalization.NumberStyles)
  + <Initialize>.MoveNext()

我已经从文档中阅读了这一点,但我并没有从中获得更多智慧。

表示数字字符串可以有小数点。 如果NumberStyles值包括AllowCurrencySymbol标志并且分析的字符串包括货币符号,则小数分隔符由CurrencyDecimalSeparator属性确定。 否则,十进制分隔符由NumberDecimalSeparator属性确定。

下面的代码也给了我同样的错误:

double.Parse("1.500", System.Globalization.NumberStyles.AllowDecimalPoint);

为什么我有这个错误? 我希望它给我 1.5 作为双精度数,因为允许小数点。

旁注:我的计算机配置为使用逗号作为小数点分隔符,这意味着下面的代码有效。

double.Parse("1,5", System.Globalization.NumberStyles.AllowDecimalPoint);

在调用中添加第三个参数

double.Parse("1.5", System.Globalization.NumberStyles.AllowDecimalPoint, CultureInfo.InvariantCulture);

发生这种情况是因为您的语言环境设置不接受点作为小数点分隔符,因此您需要添加该参数来说明您正在解析一个小数点分隔符为点的数字。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM