如何检查零是正还是负?


问题内容

是否可以检查a float是正零(0.0)还是负零(-0.0)?

我已经将转换为floatString并检查第一个char是否为'-',但是还有其他方法吗?


问题答案:

是的,除以它。1 / +0.0f+Infinity,但是1 / -0.0f-Infinity。通过简单的比较很容易找出是哪一个,因此您得到:

if (1 / x > 0)
    // +0 here
else
    // -0 here

(这假定x只能是两个零之一)