作者GP03 (FM2讓我重拾攝影的樂趣)
看板Fortran
標題[問題] 關於MOD這個運算函數
時間Wed Mar 11 22:54:39 2009
以下是我寫的一個測試用的程式
program Console1
IMPLICIT REAL*8 (A-H,O-Z)
A=31.6
B=0.4
write(*,542) DMOD(A,B)
PAUSE
542 FORMAT(F5.3)
END
照理說輸出的值應該是0才對,為甚麼會變成0.4?
原本以為是IVF10的關係但用VF5.0得到的結果也是一樣是0.4
是哪邊出了問題呢?
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.118.198.238
1F:推 jsb:用 gfortran 也是這樣。基本上這種問題都得加上個精確度條件。 03/11 23:58
2F:→ jsb:例如 if (dmod(a,b)-b.lt.0.000001) write (*,542) 0. 03/12 00:00
4F:→ jsb:ch1-8.html#04 (麻煩自己動手連)。 03/12 00:06
5F:→ jsb:簡單的說就是 mod() 是用來計算"整數除以整數"的餘數用的。 03/12 00:07
7F:→ GP03:感謝 已解決 03/14 15:32