使用双精度和精度

时间:2014-12-30 12:04:23

标签: c++

据我所知,当我提高精度时,我应该得到更精确的结果。但是从这个增加精度的例子中我不太清楚,但是我没有得到正确的结果:

#include <iostream>
#include <iomanip>
int main()
{
    using namespace std;
    cout << setprecision(17);
    double dValue;
    dValue = 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1;
    cout << dValue << endl;
}

输出为0.99999999999999989

有人能解释我为什么会这样吗?

1 个答案:

答案 0 :(得分:0)

提高精度不会产生更精确的结果。它只是将输出格式化为您想要显示的小数位数。您所看到的“错误”更多地与计算机无法准确表示0.1到您正在寻找的精度水平有关。