cout 打印不准确的结果,printf 打印准确的结果

cout prints inaccurate result and printf prints accurate result

本文关键字:结果 打印 printf cout 不准确      更新时间:2023-10-16

以下代码C++:

double x = 500000.6;
printf("%fn", x);
cout << x << endl;

打印以下内容:

500000.600000
500001

为什么cout打印的值不正确 (500000.6(?

将以下行作为代码的开头可使cout打印正确的结果:

cout.precision(7);

但是,将精度设置为 6(无论如何都是默认值(不会打印预期的结果。

为什么会这样?我小数点后只有1 位数字,而不是7 位数字!

默认情况下,精度是有效位数的总数。它不是小数点后的位数。500000.6有七个有效数字,500001只有六个。

试试这个

cout << fixed << setprecision(1) << x << endl;

用于固定格式时,精度是小数点后的位数。