各位端午好,请问为什么double输出位数完全不对
各位端午节快乐,请看代码:
#include <iostream>
using namespace std;
int main()
{
double a=1.23456789;
cout<<a;
return 0;
}
预期输出:1.23456789
实际输出:1.23457
在调试运行下看a变量的值是1.2345678899999999,可是输出就变得有些离谱。
在VC6.0,VC2005下编译都这样,在下菜鸟一枚,敢问大侠们为什么会这样输出。要怎样才能完整输出1.23456789?谢谢
注:a的值改为1.2345678是一样,输出1.23457
[解决办法]
c++显示浮点数默认精度是6(总位数),用cout.precision(10);就可以显示10位。