这有个尾巴该如何解决啊
本帖最后由 shrine 于 2022-9-26 11:28 编辑program main
integer , parameter :: QP = Selected_real_kind( 18 )
real(kind=QP)::zb
zb=-(4.76_QP-4.9_QP)*0.14_QP
write(*,*)zb,0.14_QP*0.14_QP
end
输出结果是
1.960000000000000000000000000000007E-0002
1.960000000000000000000000000000000E-0002
这尾巴有个7怎么解决啊,实际迭代过程中,这个尾巴会不断扩大
如果降低精度,这个尾巴始终在
用intel oneAPI或者XE parallel都得到了同样的结果
浮点数有误差,这是不能避免的。你要做的就是想办法控制误差符合要求。如果误差影响不大,不管它。 迭代过程如果误差积累了,试试用乘法代替加法。
比如:
y = 0
zb=-(4.76_QP-4.9_QP)*0.14_QP
Do i = 1 , 100
y = y + zb
End Do
改写为:
Do i = 1 , 100
y = 0 + (i-1)*zb
End Do
页:
[1]