[问题] 传回一个等于或大于的最小整数

楼主: 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