我想测试一个数是正数还是负数,特别是在零的情况下。 IEEE-754允许-0.0
,它是用Python实现的。我如何测试Python中的负零?
唯一的解决方法,我可以被找到:
def test_sign(x):
return math.copysign(1, x) > 0
也许(可能需要更长的时间来运行):
def test_sign(x):
math.atan2(x, -1)
我不能在通常的图书馆找到了专用功能的任何地方,做我忽略了什么?
编辑:(为什么这是有关)
这不是我目前的计划了,但问这个问题时,我试图超载根据参数值是否是正面或负面的功能。允许用户传递负零将解决零值输入的含义。我认为这也可能是其他用例的普遍兴趣。
可能重复(http://stackoverflow.com/questions/4083401/negative-zero-in-python) – Abhijit
不完全我想。 @quazgar要求测试标志的方法,而不是问题。 –
您不应将-0视为否定的,请参阅[此处](https://en.wikipedia.org/wiki/Signed_zero)以获取一些解释或参考文献:[IEEE 754-1985](http:// www。 validlab.com/754R/standards/754.pdf)和[每个计算机科学家应该了解的浮点运算](http://www.validlab.com/goldberg/paper.pdf)。 – 2013-10-11 12:01:24