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 に答える