gpt4 book ai didi

c# - 在 C# 中解析负双数时出现异常

转载 作者:可可西里 更新时间:2023-11-01 08:16:59 25 4
gpt4 key购买 nike

我正在编写一段从数据库中提取一些数据的代码。问题是我想将负数字符串“−2.8”转换为 double 。很简单,我想。我先尝试了:

var climateString = "−2.8";
var number = double.Parse(climateString);

结果是:

An unhandled exception of type 'System.FormatException' occurred in mscorlib.dll

于是我又想了想,google了一下,得到了新的答案:

var climateString = "−2.8";
var styles = NumberStyles.AllowParentheses | NumberStyles.AllowTrailingSign |NumberStyles.Float | NumberStyles.AllowDecimalPoint;
var rit = double.Parse(climateString, styles);

史诗再次失败:

An unhandled exception of type 'System.FormatException' occurred in mscorlib.dll

我又想了想,这么简单的事情我都不会傻到不知道怎么做的地步。我试过这个:

 var climateString = "−2.8";
var doue = Convert.ToDouble(climateString, CultureInfo.InvariantCulture);

是的,又是完全相同的异常。我开始寻找数字,然后我意识到是负号。仔细看这个数字“-2.8”这不是负数这。这是一个负数“-2.8”。再看看那些标志“---------------------”不一样。解析具有不同符号字符的字符串会引发异常:S。那么,任何人都有想法,如何在 C# 中优雅地将其解析为 double ?谢谢你!

最佳答案

正确的做法:

var climateString = "−2.8"; 

var fmt = new NumberFormatInfo();
fmt.NegativeSign = "−";
var number = double.Parse(climateString, fmt);

关于c# - 在 C# 中解析负双数时出现异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22647548/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com