[問題] 關於MOD這個運算函數

看板Fortran作者 (FM2讓我重拾攝影的樂趣)時間15年前 (2009/03/11 22:54), 編輯推噓2(205)
留言7則, 3人參與, 最新討論串1/1
以下是我寫的一個測試用的程式 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

03/11 23:58, , 1F
用 gfortran 也是這樣。基本上這種問題都得加上個精確度條件。
03/11 23:58, 1F

03/12 00:00, , 2F
例如 if (dmod(a,b)-b.lt.0.000001) write (*,542) 0.
03/12 00:00, 2F

03/12 00:05, , 3F

03/12 00:06, , 4F
ch1-8.html#04 (麻煩自己動手連)。
03/12 00:06, 4F

03/12 00:07, , 5F
簡單的說就是 mod() 是用來計算"整數除以整數"的餘數用的。
03/12 00:07, 5F

03/12 22:04, , 6F
03/12 22:04, 6F

03/14 15:32, , 7F
感謝 已解決
03/14 15:32, 7F
文章代碼(AID): #19jz2o3q (Fortran)
文章代碼(AID): #19jz2o3q (Fortran)