3
在Fortran中,我總是可以依靠0.d0 == 0導致.true。 ? 即:Fortran:是0.d0總是== 0?
real(8) :: x
integer :: i
x = 0.d0
i = 0
write(*,*) x == i
我試圖在一個簡單的代碼,它原來作爲.TRUE。但我能永遠相信這一點嗎? 原因是我想避免acos(x)
如果x < -1的問題。
在Fortran中,我總是可以依靠0.d0 == 0導致.true。 ? 即:Fortran:是0.d0總是== 0?
real(8) :: x
integer :: i
x = 0.d0
i = 0
write(*,*) x == i
我試圖在一個簡單的代碼,它原來作爲.TRUE。但我能永遠相信這一點嗎? 原因是我想避免acos(x)
如果x < -1的問題。
i
將被提升爲之前的浮點型應用關係相等性測試==
。
浮點數零將比較true
本身,也與一個負符號零。
「我能永遠相信嗎?」是的你可以。
謝謝,我認爲浮點數0是0(不是由0.000000000000000000000000000000000000001或類似的數字表示) –
不,零可以完全用浮點數表示。此鏈接可能會對您有所幫助:https://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html – Bathsheba
@ErikThysell通常的規則是可以精確地表示小整數。當然,如果直接輸入它們,某些計算的結果可能不準確。 –