c++中,float型和double型各保留几位有效数字?麻烦举几个例子,谢谢~

如题所述

float精度是2^23,能保证6位。
double精度是2^52,能保证15位。
但是默认float和double都只能显示6位,再多需要#include <iomanip>,然后在输出语句之前插入cout << setprecision(20);强制输出小数位。

float fval = 1.32121212f;
double dval = -45.67456554;
double dval2 = -4.456511111111111;
cout << fval << endl;
cout << dval << endl;
cout << dval2 << endl;
输出的结果是:
1.32121
-45.6746
-4.45651
参考资料:
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-04-11
显示的时候都是6位(dec),但是float尾数有23bit,double有52bit。也就是说,float精度约为1.1×10∧-7,double为 2.2×10∧-16。以上是一般情况追答

对不起,上面科学计数法的指数应该加一

本回答被网友采纳
第2个回答  2014-07-02
float有效位是6位,double是15位。如果要更多有效位最好使用定点数来代替浮点数,定点数本质是整数,只是把最后几位当作小数部分处理,从而实现更多有效位。
第3个回答  2014-07-02
这个是不确定的,因为大小不确定,float如果没记错应该是能保证6位有效数字,double最小能保证8位有效数字