一尘不染

Java 使用==比较Java中的浮点数有什么问题?

java

根据此java.sun页面,它 ==是Java中浮点数的相等比较运算符。

但是,当我键入以下代码时:

if(sectionID == currentSectionID)

进入我的编辑器并运行静态分析,我得到:“ JAVA0078浮点值与==”进行比较

什么是错的使用==比较浮点值?正确的方法是什么?


阅读 382

收藏
2020-02-27

共1个答案

一尘不染

测试浮标“相等”的正确方法是:

if(Math.abs(sectionID - currentSectionID) < epsilon)

其中epsilon是非常小的数字,例如0.00000001,具体取决于所需的精度。

2020-02-27