C语言中浮点数占4个字节共32个二进制位.
第1位为符号位.
第2位到第9位这1个字节表示指数位.
剩下的23位表示数值.
也就是说浮点数能表示的最大的完全精确的数值只有2的23次方=8388608这么大.
也就是说浮点数并不能完全精确表示一个超过7位十进制数的数值.
所以像这样的赋值就会有差错 float pi = 3.14159265358979;
像这样的循环可能就是死循环
float a = 1;
for(a=2;a!=1;a-=0.1);
应该改为这样
for(a=2;a-1<0.001;a-=0.1);
- [游客] 顶! 06/04 22:15
- [lishuhai] 有余世维讲话的痕迹,很有感染力。 09/06 17:17
- [jonytan] 爱国可贵! 受教!非受教者即猪也! 05/12 11:58
- [15180087841] 胡说,愚民 12/01 09:41
- [88161545] 受教了 11/10 13:06
- [minjianliang] 爱国可贵! 10/17 21:21
- [1987] 恩,真的很受教,顶 03/19 16:38
- [741117] 顶,希望更多人看到 03/13 07:40
- [machunggyy] 好久没有看到如此激发的文章了,。太棒了! 03/12 11:48
- [li4096255] 支持 03/11 15:02