program ex0408
real a,b
a=1000
b=0.1
write(*,*) a,"+",b,"=",a+b
stop
end
QQ截图20190823150210.png (20.98 KB, 下载次数: 279)
li913 发表于 2019-8-23 15:02
我用ivf,没这个情况,但gfortran的确是这样,搞不懂。
program ex0408
real a,b
real(8) a2,b2
a=1000
b=0.1
a2=1000d0
b2=0.1d0
write(*,*) a,"+",b,"=",a+b
write(*,'(3(f10.5,a))') a,"+",b,"=",a+b
write(*,'(3(es13.6,a))') a,"+",b,"=",a+b
write(*,*) a2,"+",b2,"=",a2+b2
end
vvt 发表于 2019-8-28 08:04
精度肯定影响这个问题的。
不只是 0.1 和 0.1d0 不一样(常量的精度),变量也需要定义为相同的精度类型(k ...
欢迎光临 Fortran Coder (http://bbs.fcode.cn/) | Powered by Discuz! X3.2 |