☝️Java 浮点数利用差值小于某个临界值做判断

87 阅读1分钟

浮点数在计算机中常常无法精确表示,并且计算可能出现误差

因此,判断浮点数相等用==判断不靠谱

正确的做法是利用差值小于某个临界值来判断

例子

public class Main {
    double x = 1 - 9.0 / 10;
    if (x == 0.1) {
        System.out.println("x is 0.1");
    } else {
        System.out.println("x is not 0.1");
    }
}

截屏2023-01-10下午4.49.20.png

修改

把if判断括号里面的x == 0.1 改成 Math.abs(x - 0.1) < 0.00001 利用差值小于某个临界值来判断。

截屏2023-01-10下午4.48.45.png