为什么Math.Sign()在传递NaN时抛出异常?

时间:2017-06-29 13:38:41

标签: c# math nan sign

当NaN参数传递给它们时,许多数学函数返回NaN。我想知道为什么Math.Sign()在传递NaN时抛出异常?

如何确定哪个方法返回NaN以及哪个方法抛出异常。理解这一点将有助于我在自己的方法中遵循正确的设计。

1 个答案:

答案 0 :(得分:2)

int Math.Sign(Double value)返回一个整数...( - 1/0/1)。 Double.Nan似乎不是整数。

可能这是它抛出异常的主要原因。

还可以讨论为什么Int.NaN不存在,我们已经在Why is Nan (not a number) only available for doubles?进行了讨论

Math.Sign(Double)的行为记录在https://msdn.microsoft.com/en-us/library/ywb0xks3(v=vs.110).aspx