为什么 Math.Sign() 在传递 NaN 时会抛出异常? [已关闭]

问题描述 投票:0回答:1

数学函数可以在向其传递 NaN 参数时返回 NaN,也可以抛出异常。例如Math.Sign() 在传递 NaN 时抛出异常?

什么是好的设计?在编写自己的数学方法时我应该遵循哪一条?

c# math nan digital-signature
1个回答
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

© www.soinside.com 2019 - 2024. All rights reserved.