求助,为什么浮点计算结果是有问题的
if(j==4756 .and. da_daycount>3) thenwrite(*,*) "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吗
这个是数据的精度问题。单精度数值有效位数是6~7位十进制数。双精度数值有效位数是15~17位十进制数。
页:
[1]