作者ttjhninn (Cream)
看板Fortran
標題[問題] 有關double precision運算式
時間Tue Sep 15 02:03:31 2015
hello各位 不好意思又要打擾大家一下了
上次所發問的問題小弟仍然無法完全了解當中出錯的原因
索性直接舉出一段code希望大家可以給些意見
implicit none
double precision x,y,r,s
x=28.4d+00
y=16.5d+00
r=(y-x)*10.0d+00
s=(y+x)*10.0d+00
print*,r,int(r),s,int(s)
end
print出來的數字為:
-119.000000000000 -118 449.00000000000000 449
我已經很明確給予xy值了,照理說應該不會有所謂的x-y=-118.999999999這類的數字,有人可以提供一下經驗嗎?
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 115.43.222.152
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Fortran/M.1442253814.A.604.html
1F:→ gilocustom: 輸出r的時候小數點以下多顯示個幾位數,你會有驚喜。 09/15 02:19
2F:→ gilocustom: 先別管這些了,你~有聽過浮點數嗎? 09/15 02:23
3F:→ ttjhninn: 怎麼多輸出後面幾個數字?另外這不是double precision嘛? 09/15 02:30
4F:→ ttjhninn: 不是代表只提供16的位子存放數字,怎麼還會有後面幾位? 09/15 02:31
5F:→ ttjhninn: 謝謝G大,我大概知道是什麼原因了 09/15 04:16
6F:→ blc: FYI,gfortran是-118.9999999~14位 09/15 12:00