其实这个解决方法也很简单,就是将计数变量改为双精度,就不存在上述问题了,但是心里就是想搞清楚导致上述问题出现的原因是什么,搞不清楚太难受了。查看相关资料说是单精度的浮点数的有效位数为6~7位,这个有效位指的具体是什么呢,什么是6位,什么时候是7位,比如说下面代码的输出结果为1.000000 1.000001 1.000001 1.000002 1.000000,这是不是代表具有7为有效数字,而最后一位则是不准确的,是需要按照四舍五入进行估计的呢
[Fortran] 纯文本查看 复制代码 Program Test
Real A,B,C,D,E
A=1.000000
B=1.000001
C=1.0000014
D=1.0000015
E=1.0000001
Write(*,*) A,B,C,D,E
End Program Test |