[root@localhost ~]# cat f.c
#include
int main(void) {
float x = 0.88;
float y = 0.01;
float z= x + y;
printf("%.10f\n",z);
}
[root@localhost ~]# gcc f.c
[root@localhost ~]# ./a.out
0.8899999857
0.88+0.01<0.89,就因为在格式化输出中加了.10~~
电脑只有有限空间,只能提供有限的精度,而现实中的数据是无穷大的,因此不能用固定的比特数表示现实世界中的数据。
阅读(801) | 评论(0) | 转发(0) |