#include<iostream>
using namespace std;
int main()
{
float f;
double d;
f = 0.123456789f;
d = 123456789.123456789;
cout << "f = " << f << " d=" << d << endl;
return 0;
}
f = 0.123457 d=1.23457e+08
为什么不是f=0.1234568 ?
表头 | 表头 |
---|---|
单元格 | 单元格 |
单元格 | 单元格 |
单元格 | 单元格 |
单元格 | 单元格 |
单元格 | 单元格 |
单元格 | 单元格 |
d=1.23457e+08这个结果,有的书上说是 d=1.23457e+008,+08和+008是编译器和系统的区别?
书上说:float f2=-789.012F 若f2=-789.0126F,则f2实际获得的值为-789.013 。既然是7位有效数字,最后那一位6就应该正确显示出来啊?
如果不做特殊的输出语句,默认情况下不论对于单精度还是双精度的形浮型数,
以Cout<<x形式输出的情况下,c++保留六位有效数字。
整数部分不算,精度说的是小数部分
浮点数的存储中,正负值,指数和浮点数都有固定的存储位数。精度跟正负值和整数部分多长没有关系
浮点型值精度只考虑小数点后的部分,浮点型最大精度为小数点后6位,第7位会四舍五入,所以f = 0.123456789f;这个数,只显示小数点后前6位,第7位是7,大于5,四舍五入,第6位+1,所以显示的是0.123457
第一次提问题,所以那段表头和单元格的错误请忽略...