我运行了这段代码,但是输出与我预期的不同。
输出:
c = 1324
v = 1324.99
我希望
v
的输出应为1324.987。为什么v
中的数据与输出不同?我在Windows 8 32上使用lite代码。
#include <iostream>
using namespace std;
int main()
{
double v = 1324.987;
int n;
n = int (v);
cout << "c = " << n << endl;
cout << "v = " << v << endl;
return 0;
}
最佳答案
使用cout
打印时的默认精度为6,因此仅显示6个小数位。数字四舍五入到最接近的值,这就是为什么看到1324.99的原因。您需要set a higher precision才能看到更多的“正确”值
但是,将精度设置得太高可能会在后面打印出很多垃圾数字,因为二进制浮点类型不能完全存储所有十进制浮点值。