C++ 为什么输出与我预期的不同?
我运行了这段代码,但输出与我预期的不同。 输出:C++ 为什么输出与我预期的不同?,c++,codelite,C++,Codelite,我运行了这段代码,但输出与我预期的不同。 输出: c = 1324 v = 1324.99 我希望v的输出应该是1324.987。为什么v中的数据与输出不同 我在Windows832上使用代码lite #include <iostream> using namespace std; int main() { double v = 1324.987; int n; n = int (v); cout << "c = " << n
c = 1324
v = 1324.99
我希望
v
的输出应该是1324.987。为什么v
中的数据与输出不同
我在Windows832上使用代码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;
}
#包括
使用名称空间std;
int main()
{
双v=1324.987;
int n;
n=int(v);
cout浮点类型由于其固定宽度表示形式而继承舍入错误。有关详细信息,请参阅。使用cout
打印时,默认精度为6,因此仅显示6位小数。数字舍入到最接近的值,这就是为什么您看到1324.99。您需要查看更多信息“正确”值
但是,将精度设置得太高可能会打印出大量的垃圾数字,因为二进制浮点类型无法准确存储所有十进制浮点值。您期望的是什么?我期望v的输出应该是1324.987。虽然有用的信息,但这不是这里的情况;事实上,v的默认精度显示为6。即使没有舍入错误,输出也将为1324.99。
double
的精度足以存储1324.987。