tom*_*msv 4 c# double parsing infinity
如果我试试
Double.Parse("Infinity")
Run Code Online (Sandbox Code Playgroud)
我明白了
Double.Parse("Infinity") threw an exception of type 'System.FormatException'
Run Code Online (Sandbox Code Playgroud)
为什么?如果我想要解析它并获得具有无限值的Double,我该怎么办?
我刚刚发现了这个:
Decimal.Parse("Infinity", System.Globalization.CultureInfo.InvariantCulture);
Run Code Online (Sandbox Code Playgroud)
将工作并返回值为+ Infinity的双精度数.
它不起作用的原因是,我认为,我不是自动在InvariantCulture中,而是在de-DE文化中,它不能处理确切的字符串"Infinity".(也许它会处理其他一些字符串.)
也许试试这个:
if(yourstring.ToLower() == "infinity")
{
yourdouble = double.PositiveInfinity;
}
Run Code Online (Sandbox Code Playgroud)
以下所有解析都是有效的,因为您的系统设置不同会导致问题.正如dontomaso上面回答的那样,只需要添加Invariant Culture.
Double.Parse("NaN", System.Globalization.CultureInfo.InvariantCulture)
Double.Parse("-Infinity", System.Globalization.CultureInfo.InvariantCulture)
Double.Parse("Infinity", System.Globalization.CultureInfo.InvariantCulture)
Run Code Online (Sandbox Code Playgroud)