我正在编写一段代码,从数据库中提取一些数据。问题是我想将负数字符串“−2.8”转换为double类型。我觉得这很简单。我首先尝试了:
var climateString = "−2.8";
var number = double.Parse(climateString);
通过这个结果:
An unhandled exception of type 'System.FormatException' occurred in mscorlib.dll
于是我再次思考,通过谷歌搜索得到了新的答案:
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类型的数字吗?谢谢!