fmod产生意外的价值?

时间:2015-09-21 01:19:45

标签: c++

我在我的一个程序中使用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

0 个答案:

没有答案