据我所知,当我提高精度时,我应该得到更精确的结果。但是从这个增加精度的例子中我不太清楚,但是我没有得到正确的结果:
#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
有人能解释我为什么会这样吗?
答案 0 :(得分:0)
提高精度不会产生更精确的结果。它只是将输出格式化为您想要显示的小数位数。您所看到的“错误”更多地与计算机无法准确表示0.1到您正在寻找的精度水平有关。