gpt4 book ai didi

fortran - Fortran 不能做865398.78 和-865398.78 之间的加法吗?为什么答案是-0.03?

转载 作者:行者123 更新时间:2023-12-05 08:57:23 25 4
gpt4 key购买 nike

在下面的代码中,我将 865398.78 和 -865398.78 相加。我希望得到 0,但我得到的是 -0.03。

The Fortran code and the result

源代码:

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

结果:

x=  -865398.780000000     
x+865398.78= -3.000000002793968E-002

我对“阅读”代码或其他东西的使用有误吗?

最佳答案

数字 865398.78 在您的代码中以单精度表示。单精度可以处理大约 7 位有效数字,而您的数字有 8 位。您可以通过编写使其成为 double

x=x+865398.78_8

关于fortran - Fortran 不能做865398.78 和-865398.78 之间的加法吗?为什么答案是-0.03?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33319357/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com