[問題] 傳回一個等於或大於的最小整數

作者: alexanjou (盜版神話)   2015-05-22 20:46:12
如題所示 我採用彭國倫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
數字根本不對@ @
是因為數值太大時 所導致的錯誤嗎?
謝謝
作者: physbook (路克)   2015-05-23 00:38:00
overflow了,把h宣告成real*8試試看 real*8 :: h
作者: alexanjou (盜版神話)   2015-05-23 10:28:00
有哦!我每一個變數都是 kind=8
作者: rex0707 (我就是我)   2015-05-23 14:11:00
CEILING的回傳值不是一個整數嗎? 為什麼要宣告成real
作者: terryys (terry)   2015-05-23 17:24:00
CEILING(ABS(z)/40,8)
作者: physbook (路克)   2015-05-24 00:18:00
想問樓上8的意思是什麼?
作者: terryys (terry)   2015-05-25 10:27:00
傳回的數值是integer(8) 預設應該是integer(4)所以會overflow

Links booklink

Contact Us: admin [ a t ] ucptt.com