首页 > 解决方案 > 小的双重加法似乎在 Java 中不起作用

问题描述

public class Test {

public static void main(String[] args) {
    double BASE = 0.4527210187492833;
    double num = 0.4527210187492833;

    for (int i = 0; i < 1000000000; i++) {
        num+=2.7755575615628914E-17;
    }

    System.out.println(num);
    System.out.println(BASE == num);
}

}

印刷 0.4527210187492833 true

这不应该打印 0.4527210187492833 + (1000000000 * 2.7755575615628914E-17) ≈ 0.4527210465 -> false 吗?

标签: java

解决方案


推荐阅读