错误的Math.Pow()实现了.NET中的NaN数

Big*_*X I 7 .net c# math

为什么Math.Pow(1.0, double.NaN)命令返回NaN而不是正确1.0?我理解NaN为一个不确定的值(数学上)代表所有实数,包括正负无穷大.对于所有这些值,表达式始终在数学上是正确的并且等于1.0.

例如,Python有它, 1**float("nan") == 1True根据IEEE标准:

对于任何y值(包括NaN),如果x为+1,则返回1.0.

小智 0

NaN 代表“不是数字”,因此 NaN 返回对我来说似乎是正确的。