我正在使用英特尔® Visual Fortran 编译器专业版 11.1,当我运行此代码时
program Console1
implicit none
real(8), parameter:: iterations = 1000.d0
real(8), parameter:: maximum = 0.02d0
integer, parameter:: outfile=1
real(8) force, dforce
integer i
dforce = maximum/iterations
force = 0.d0
open (unit=outfile,file="results.txt",action="write",status="replace")
do i=0,int(iterations)
write(outfile, *) force
force = force+dforce
enddo
close(outfile)
endprogram
文件 results.txt 很乱,最终的数字是 1.999999999999952E-002 而不是 2.d-2
我做错了什么?
谢谢!
不会再有!浮点数并不是实数的精确表示。时期。
每个计算机科学家都应该了解的浮点运算知识 http://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)