float和double的指数形式的有效位的疑难问题#includestdio.hmain(){double xx2222222222.222226666pr
float和double的指数形式的有效位的疑难问题
#include<stdio.h>
main()
{
double x;
x=2222222222.222226666;
printf("x=%e\n",x);
}
x=2.222222e+009
Press any key to continue
#include<stdio.h>
main()
{
float x;
x=22222.678;
printf("x=%e\n",x);
}
x=2.222268e+004
Press any key to continue
问①,就仅看此程序,其他不要多想,“针对此程序”有效数分别是几位?分别是哪几位?
②,为什么指数形式的有效数,double的不是书中所写的“15~16位”?而且相差非常多?为什么呢? C double float
[解决办法]
double在计算机内部是用科学计数伐表示的,有效位当然是高几位,底数部分一共八位,其中一个是符号位,所以只能显示7位。。。
各个计算机的实现方式不一样,所以15-16不一定呀
[解决办法]
http://www.binaryconvert.com/
http://babbage.cs.qc.cuny.edu/IEEE-754/
