回复 楼主 少林小和尚
C语言中机器码表示的双精度实型变量是有误差的,在i从0加到10的过程中,并不是一直以0.1为递增,可能是0.1000000001或0.10000000000001等等,具体跟机器类型有关。所以,在for循环体中最好用小于、大于、小于等于或大于等于,而不要用等于或不等于。你把你的程序改成double i; for(i=9.8;i !=10;i+=0.1) printf("%2.15lf\n",i);就能看到我说的这个误差。
[
本帖最后由 笑傲 于 2013-4-25 22:42 编辑 ]