作者alexanjou (雅痞Mark杯)
看板Fortran
標題[問題] 傳回一個等於或大於的最小整數
時間Fri May 22 20:46:12 2015
如題所示 我採用彭國倫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://webptt.com/m.aspx?n=bbs/Fortran/M.1432298775.A.DCD.html
1F:推 physbook: overflow了,把h宣告成real*8試試看 real*8 :: h 05/23 00:38
2F:→ alexanjou: 有哦!我每一個變數都是 kind=8 05/23 10:28
3F:→ rex0707: CEILING的回傳值不是一個整數嗎? 為什麼要宣告成real 05/23 14:11
4F:推 terryys: CEILING(ABS(z)/40,8) 05/23 17:24
5F:→ physbook: 想問樓上8的意思是什麼? 05/24 00:18
6F:推 terryys: 傳回的數值是integer(8) 預設應該是integer(4)所以會 05/25 10:27
7F:→ terryys: overflow 05/25 10:27