我正在寫出數組的元素,如下所示: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
提交
取消