看板 Fortran 關於我們 聯絡資訊
如題所示 我採用彭國倫P635頁的CEILING x3=-5.17E+15 z=x3+20 h=CEILING(ABS(z)/40) write(*,*) ABS(z)/40 , h 銀幕出現 ABS(z)/40=1.295E+14 (正確) 然而 h=-2.147E+9 數字根本不對@ @ 是因為數值太大時 所導致的錯誤嗎? 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.116.155.140 ※ 文章網址: https://www.ptt.cc/bbs/Fortran/M.1432298775.A.DCD.html
physbook: overflow了,把h宣告成real*8試試看 real*8 :: h 05/23 00:38
alexanjou: 有哦!我每一個變數都是 kind=8 05/23 10:28
rex0707: CEILING的回傳值不是一個整數嗎? 為什麼要宣告成real 05/23 14:11
terryys: CEILING(ABS(z)/40,8) 05/23 17:24
physbook: 想問樓上8的意思是什麼? 05/24 00:18
terryys: 傳回的數值是integer(8) 預設應該是integer(4)所以會 05/25 10:27
terryys: overflow 05/25 10:27