为了账号安全,请及时绑定邮箱和手机立即绑定

为什么将数组的元素乘以1/2或1/3时会被格式化为零?

为什么将数组的元素乘以1/2或1/3时会被格式化为零?

米脂 2019-12-06 15:18:59
我正在写出数组的元素,如下所示:write(6,'(i4,200(1x,e15.7))')Jtot0, (a*PJjv(i,Jtot0,j,iv),i=1,nenerdif,100)哪里a是常数。但是,当此常数等于1/2或1/3时,输出为零,如果等于1,则一切正常。数组元素为real*8。
查看完整描述

1 回答

?
幕布斯6054654

TA贡献1876条经验 获得超7个赞

在Fortran中,1/2是整数除法运算,在这种情况下,它将舍入为0。相同1/3。如果要得到真实的结果,请进行真实的除法运算,例如1.0/2.0。请注意,将的结果1/2赋给实变量会将实变量设置为0.0,即将得到整数除法0,然后发生的赋值会将该值转换为最接近的实数表示形式。

整数除法会产生整数结果,这在编程语言中非常普遍。


查看完整回答
反对 回复 2019-12-06
  • 1 回答
  • 0 关注
  • 631 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信