0

可能重复:
如何在objective-c / cocoa touch中进行模运算?

有人可以向我解释为什么这里“myModValue”的值为 1.73472e-18 但当 x 为 0.1 或 0.4 时它正确为 0?有没有更好的方法来获得两个双打的模值?

double x = 0.3;
double y = 0.1;
double myModValue = fmod(x, y);

谢谢迈克尔

编辑:尝试了上面的代码硬编码(所以不是我的项目变量的值),结果是 0.1 我不知道为什么......

4

1 回答 1

1

由于舍入误差,浮点数并不精确,值 1.73472e-18 在浮点数中基本上为 0。这就是为什么您不应该将浮点数与 == 进行比较的原因。

另请参阅此答案

于 2012-09-08T10:27:36.803 回答