java - 小的双重加法似乎在 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 吗?
解决方案
推荐阅读
- c++ - 我无法在快板中获得快速简便的方法来获取键盘事件
- python - 如何在 django 中获取内部连接的表别名
- typescript - 打字稿索引签名和方法
- postgresql - FlywayDB 未创建扩展
- java - 有没有办法用不同的组件替换 JMenu 的 JPopup 组件?
- python - 如何在python中实现卷积层?
- javascript - 如何根据用户使用javascript发送的时间显示消息
- spring - 与继承对象的多对一关系 - Postgres
- xml - Parse XML with SQL Server 2016
- javascript - 如何在不触发子进程“退出”事件的情况下杀死子进程?