数学函数可以在向其传递 NaN 参数时返回 NaN,也可以抛出异常。例如Math.Sign() 在传递 NaN 时抛出异常?
什么是好的设计?在编写自己的数学方法时我应该遵循哪一条?
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