我在我的一个程序中使用fmod(),它会产生意想不到的结果,有人可以帮我解决这个问题吗?
这是代码:
int main(int argc, char** argv)
{
double test = 0.756;
while (fmod(test, 1) != 0)
{
test = test * 10;
std::cout << test << " " << fmod(test, 1) << std::endl;
}
std::cout << "Final Product: " << test;
getchar();
return 0;
}
这是输出:
7.56 0.56
75.6 0.6
756 1.13687e-13
7560 9.09495e-13
...
Final Product: 7.56e+15
为什么fmod(756, 1) == 1.13687e-13
?不应该fmod(756, 1) == 0
?