double 有效数字不是十几位吗?

double 有效数字不是十几位吗?
为什么

#include <iostream>
using namespace std;
int main( )
{
double a=123.956162313134;
cout<<a<<endl;
return 0;
}

打出来是 123.956
为什么?单精度 不是才6位有效数字吗?

第1个回答  2009-10-08
双精度型的有效数字为6位,单精度也是6位。
双精度型在默认情况下也为6位。
其中不包括小数点。
第2个回答  2009-10-08
cout < < "a= " < <setprecision(16) < <a < <endl;

cout < < "a= " < <setprecision(你要输出的位数) < <a < <endl;本回答被提问者采纳