当NaN参数传递给它们时,许多数学函数返回NaN。我想知道为什么Math.Sign()在传递NaN时抛出异常?
如何确定哪个方法返回NaN以及哪个方法抛出异常。理解这一点将有助于我在自己的方法中遵循正确的设计。
答案 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