可能重复:
Java中操作和比较浮点数
我在Java中比较浮点数时应该使用Epsilon吗? Float.compare(float f1, float f2)静态方法是否安全可用?
谢谢!
编辑:我想我明白了。
当我在eclipse中写入,比如说,3.6f,编译器将这个数字解释为3.6。然而,当我写1.2f * 3.0f时,结果是3.6000001。虽然从数学上讲这是错误的,但这两个结果显然是不相等的。因此,在检查相等性时需要有一个Epsilon。
然而,当我在eclipse中写入0.0f时,编译器将其解释为0严格地说,因为IEEE 754能够正确处理它。因此,确保一个浮点数严格为正(value > 0.0f)是正确的。
我唯一看到的问题是当计算机不使用IEEE 754表示时,而是使用一个不能正确处理0的表示。
我是对的吗?