相关疑难解决方法(0)

Java中的双重算术和相等

这是一个奇怪的事(至少对我来说).此例程打印为true:

double x = 11.0;
double y = 10.0;
if (x-y == 1.0) {
    // print true
} else {
    // print false
}
Run Code Online (Sandbox Code Playgroud)

但是这个例程打印错误:

double x = 1.1;
double y = 1.0;
if (x-y == 0.1) {
    // print true
} else {
    // print false
}
Run Code Online (Sandbox Code Playgroud)

有人想解释这里发生了什么吗?我猜这与ints冒充floats的整数运算有关.此外,还有其他基地(除了10)有这个属性?

java floating-point double floating-accuracy ieee-754

1
推荐指数
1
解决办法
1720
查看次数