为什么 Math.Sign() 在传递 NaN 时抛出异常?
Why does Math.Sign() throws exception when passed a NaN?
许多数学函数 return 当 NaN 参数传递给它们时为 NaN。我想知道为什么 Math.Sign() 在传递 NaN 时抛出异常?
如何决定哪个方法 return NaN 以及哪个方法抛出异常。理解这一点将有助于我在自己的方法中遵循正确的设计。
int Math.Sign(Double value)
returns 一个整数... (-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
许多数学函数 return 当 NaN 参数传递给它们时为 NaN。我想知道为什么 Math.Sign() 在传递 NaN 时抛出异常?
如何决定哪个方法 return NaN 以及哪个方法抛出异常。理解这一点将有助于我在自己的方法中遵循正确的设计。
int Math.Sign(Double value)
returns 一个整数... (-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