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

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (26)

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

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

提问于
用户回答回答于

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

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

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

用户回答回答于

你可以使用Float.floatToIntBits它将其转换为int并查看位模式:

float f = -0.0f;

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

所属标签

可能回答问题的人

  • 天使的炫翼

    17 粉丝531 提问36 回答
  • 富有想象力的人

    3 粉丝0 提问29 回答
  • o o

    4 粉丝494 提问27 回答
  • 学生

    3 粉丝476 提问27 回答

扫码关注云+社区

领取腾讯云代金券