找回密码
 注册
查看: 2164|回复: 4

还是一个fortran的小问题!

[复制链接]
发表于 2003-6-11 12:37:58 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
PROGRAM UU
IMPLICIT NONE
INTEGER I
REAL KKK,LLL,MMM
KKK=1.
MMM=0.05
LLL=(KKK/MMM)
I=INT(LLL)
WRITE(*,*)I
END
这是一个小程序,表达的是我在编程中遇到的一个问题:明明kkk/mmm取整后应当为20,可是计算后却是19! 我晕了! 特向大家求助!:em14
 楼主| 发表于 2003-6-11 13:28:20 | 显示全部楼层

还是一个fortran的小问题!

很显然,程序计算中一定是将kkk/mmm的商算成19.99999之类的值,而取整的函数int只是简单的截取整数部分,所以才出现这样的情况吧.但是,这与我们所希望的结果毕竟有差距,该怎么做呢?人为处理,(比如lll+1),还是避而不用,用其他的方法?
发表于 2003-6-11 16:13:42 | 显示全部楼层

还是一个fortran的小问题!

加上0.5,进行四舍五入吧
发表于 2003-6-11 17:29:59 | 显示全部楼层

还是一个fortran的小问题!

这类问题大家在编程时是要十分注意的。
 楼主| 发表于 2003-6-11 19:56:16 | 显示全部楼层

还是一个fortran的小问题!

int()函数只是进行简单的截取,你如4.25,4.56结果都是4!的确,这样的问题编程时得注意,不经意间,就会出现意想不到的问题.我进行了人工修正,加1,而不是0.5!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表