我正在写出数组的元素,如下所示: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
,然后发生的赋值会将该值转换为最接近的实数表示形式。
整数除法会产生整数结果,这在编程语言中非常普遍。
添加回答
举报
0/150
提交
取消