Fortran Coder

标题: 求助,为什么浮点计算结果是有问题的 [打印本页]

作者: jkl1102925008    时间: 2022-6-6 22:17
标题: 求助,为什么浮点计算结果是有问题的
[Fortran] 纯文本查看 复制代码
if(j==4756 .and. da_daycount>3) then
write(*,*) "nlch1.01"
write(*,*) co
write(*,*) vno3
write(*,*) vv
end if
if (vv > 1.e-10) then
co = vno3/vv
if (co<0.) co=0.
end if
if(j==4756 .and. da_daycount>3) then
write(*,*) "nlch1.02"
write(*,*) co
write(*,*) vno3
write(*,*) vv
end if

结果:
nlch1.01
0.00000000000
0.15994490000
60.96594000000
nlch1.02
0.00262351220
0.15994490000
60.96594000000

但是 co 的答案不应该是0.00262351240吗

作者: 风平老涡    时间: 2022-6-6 22:46
这个是数据的精度问题。单精度数值有效位数是6~7位十进制数。双精度数值有效位数是15~17位十进制数。




欢迎光临 Fortran Coder (http://bbs.fcode.cn/) Powered by Discuz! X3.2