作者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/cn.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