今天担任助教的时候,负责实验,学生提问到了一个关于float和double的精度问题。
例如:
查了相关资料,发现float的有效位为6.
即若
float x=1234567890;
则x的实际有效数字实际上是7位
即
x属于1234567000到1234567999之间的随机一个数字
这里是有效位的概念,和精度无关,即和float能够表示的数字范围无关。
换个方式来说,float能表示的某个范围中,是有一些的数字不能精确表示出来的。
b=99999999999;
c=99999999921;
printf("%f\n",b);
printf("%f\n",c);
输出的b和c都是: