[問題] 浮點數下的if和等於
do i=1,200
co(i)=-1.005d0+dfloat(i)*0.01d0
! write(*,*) co(i)
if (co(i).eq.(-0.975d0)) write(*,*) i
end do
我的程式片段如上
本來只是懶得手算,想要看一下在i=幾時,會出現co=-0.975
結果if不成立,沒有輸出
好奇之下就列出了所有co來看
發現co的值是-0.9749999999
我以往都沒注意到這種情況!
請問這樣子有沒有什麼簡單的寫法可以避免這種事情發生呢
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 148.81.47.89
→
10/20 05:40, , 1F
10/20 05:40, 1F
推
10/21 03:32, , 2F
10/21 03:32, 2F
推
10/25 16:44, , 3F
10/25 16:44, 3F
→
10/29 23:46, , 4F
10/29 23:46, 4F
→
10/29 23:51, , 5F
10/29 23:51, 5F
Fortran 近期熱門文章
PTT數位生活區 即時熱門文章