本文介绍了Fortran无法在865398.78和-865398.78之间进行添加?为什么答案是-0.03?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
在下面的代码中,我将865398.78和-865398.78加在一起。我希望得到0,但我得到-0.03。
In the code below I am adding together 865398.78 and -865398.78. I expect to get 0, but instead I get -0.03.
源代码:
Source Code:
program main
real(8) :: x
open(10,file="test.txt")
read(10,*)x
print *,"x=",x
x=x+865398.78
print *,"x+865398.78=",x
end program
结果:
Result:
x= -865398.780000000
x+865398.78= -3.000000002793968E-002
我在使用读取代码时出错或其他什么东西?
Am I wrong with the usage of "read" codes or something else?
推荐答案
数字865398.78在您的代码中以单精度表示。单精度可以处理大约7位有效数字,而你的数字有8位。你可以通过编写双精度来达到双精度。
The number 865398.78 is represented in single precision in your code. Single precision can handle about 7 significant digits, while your number has 8. You can make it double precision by writing
x=x+865398.78_8
这篇关于Fortran无法在865398.78和-865398.78之间进行添加?为什么答案是-0.03?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!