24小时热门版块排行榜    

CyRhmU.jpeg
查看: 468  |  回复: 3

panyes

新虫 (初入文坛)

[交流] 关于fortran精度、数据类型问题的求助已有2人参与

我用的是Intel fortran 2011
我的程序里面有这样的语句
Lost0=(H0-H0fen)/(Q0*Q0)-resist0
write(21,*)h0,h0fen,q0,resist0,lost0

结果输出的是
  108.0000       69.50000       47.50000      1.0724409E-02           0

如果在程序开头加上doubleprecision lost0 或者 real lost0
输出的结果就变为 108.0000       69.50000       47.50000      1.0724409E-02  6.3393041E-03
这时lost0 就不为0了

我就搞不懂为什么不加说明的话lost0怎么就变成0了,难道默认是整型了?
但是我的其它数据也没有被默认成整型
之前用的campaq fortran好像没有这个情况,是版本的问题?还是只是我这次在哪个地方弄错了?
程序搞了一晚上,发现错误就出现在了这里。但是我没搞清楚错误的原因,怕以后还会出现类似的错误。
求各位大神帮忙指出错误,不胜感激!!
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

jerkwin

专家顾问 (正式写手)


小木虫: 金币+0.5, 给个红包,谢谢回帖
Fortran默认有个I-N规则, 以I-N这个字母开头的变量默认是整型, 你的LOST0就是这样
2楼2015-03-24 22:33:20
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

panyes

新虫 (初入文坛)

引用回帖:
2楼: Originally posted by jerkwin at 2015-03-24 22:33:20
Fortran默认有个I-N规则, 以I-N这个字母开头的变量默认是整型, 你的LOST0就是这样

非常感谢!被你这么一说我想起来了!
3楼2015-03-25 13:18:44
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

seanbsd

木虫 (小有名气)


小木虫: 金币+0.5, 给个红包,谢谢回帖
需要你检查下你的源代码,如果在F90里面没有implicit none,而你又没说明你需要输出的数据是实数性数据,按照缺省规则L。。。输出的就是整型的,有小数点那结果显示为"0"
4楼2015-03-27 14:32:10
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 panyes 的主题更新
普通表情 高级回复(可上传附件)
信息提示
请填处理意见