我有一些代码可以简化为:
double x;
double y;
double z;
.
.
while (x + y != z)
do stuff;
问题是x + y非常接近z但是在我的代码中某处它会失去精度,因此x + y有点偏离。我尝试过这样的事情:
while (x + y + 0.0001 > z && x + y - 0.0001 < z)
但我想做更一般的事情。有没有这样的符号/功能:
while (x + y != nextdouble(z) && x + y != prevdouble(z) && x + y != z)
其中nextdouble()
会给出比参数更大的可能双倍。