回 帖 发 新 帖 刷新版面

主题:刚接触fortran,请教几个问题,望赐教!

1.
fo=pi2*260.36d9
这里的260.36d9是不是等效于260.36e9
2.
do 100 i=1,nt
si=real(i)
...
if((i/2-real(i)/2.).eq.0.) then
   ...
endif
...
100 continue
我感觉这里的i已经是实数了,为什么还要加real(i)?   (i/2-real(i)/2.)有不等于0的时候吗?
望大家给我这菜鸟指点一下!谢谢


回复列表 (共3个回复)

沙发


不同类型之间的数据运算有规则,复型》双精度》实型》整型,也就是说最后低级的数据要化成高级的数据来算,比如8.8-8实际上是 8.8-8.0

板凳

感觉i是实数是什么意思,i明明是整型。
因此当i为奇数时,由于i/2依然为整型,结果会将小数部分截去,(i/2-real(i)/2.)不等于0。

3 楼

e是单精度,d是双精度

我来回复

您尚未登录,请登录后再回复。点此登录或注册