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

2022-08-31 12:35:16

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

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


答案 1

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

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

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


答案 2

您可以使用 将其转换为 a 并查看位模式:Float.floatToIntBitsint

float f = -0.0f;

if (Float.floatToIntBits(f) == 0x80000000) {
    System.out.println("Negative zero");
}