3

C# 是否Double正确解析“NaN”,即。有Double.Parse("NaN").ToString() == "NaN"吗?

4

2 回答 2

7

尝试一下:

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

但是,此字符串的解析和输出取决于区域设置,因此要么确保您始终传递文化,要么不要对格式做出太多假设。

于 2012-08-08T00:59:40.693 回答
7
var d = Double.Parse("NaN");
Console.WriteLine(d); // prints "NaN"

我在 en-US 语言环境下运行。正如乔伊所说,要小心这个。当我指定不变的文化时,我得到了相同的结果(在这些情况下通常应该这样做):

var d = Double.Parse("NaN", CultureInfo.InvariantCulture);
Console.WriteLine(d.ToString(CultureInfo.InvariantCulture)); // prints "NaN"
于 2012-08-08T01:03:58.867 回答