如何检查零是正数还是负数?

2022-01-09 00:00:00 floating-point zero java

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

Is it possible to check if a float is a positive zero (0.0) or a negative zero (-0.0)?

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

I've converted the float to a String and checked if the first char is a '-', but are there any other ways?

推荐答案

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

Yes, divide by it. 1 / +0.0f is +Infinity, but 1 / -0.0f is -Infinity. It's easy to find out which one it is with a simple comparison, so you get:

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

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

(this assumes that x can only be one of the two zeroes)

相关文章