Double.Parse("NaN")是否正确解析?

Sup*_*est 3 .net c# double nan

C#是否Double正确解析"NaN",即.呢Double.Parse("NaN").ToString() == "NaN"

Joe*_*oey 7

试试吧:

PS> $ic = [Globalization.CultureInfo]::InvariantCulture
PS> [double]::parse('NaN', $ic).ToString($ic)
NaN
Run Code Online (Sandbox Code Playgroud)

但是,此字符串的解析和输出依赖于语言环境,因此要么确保始终传递文化,要么不要对格式做太多假设.

  • PowerShell,是的.快速尝试.NET内容的好方法,无需使用ConsoleApplication2345启动Visual Studio. (5认同)

Mic*_*tta 7

var d = Double.Parse("NaN");
Console.WriteLine(d); // prints "NaN"
Run Code Online (Sandbox Code Playgroud)

我在en-US区域运行.正如乔伊所说,要小心这一点.当我指定不变文化时(在这种情况下经常应该这样),我得到了相同的结果:

var d = Double.Parse("NaN", CultureInfo.InvariantCulture);
Console.WriteLine(d.ToString(CultureInfo.InvariantCulture)); // prints "NaN"
Run Code Online (Sandbox Code Playgroud)