作者snowanimal (動物先生)
看板Fortran
標題Re: [問題] 實在是找不到BUG~"~
時間Tue Nov 22 16:13:46 2011
※ 引述《junny621 (junny)》之銘言:
: 1 do i=1,n
: 2 if(t(i)>216d0)then
: 3 cp(i)=1060
: 4 else if(184d0<t(i).and.t(i)<=216d0)then
: 5 cp(i)=1500
: 6 else if(182d0<t(i).and.t(i)<=184d0)then
: 7 cp(i)=2000
: 8 else if(t(i)<=182d0)then
: 9 cp(i)=1190
: t(i)從232開始降溫
: 程式開始跑
: 跑到T(i)=216就會停下來(就跑到216.001589519226300就不繼續往下了~"~)
: 如果將第4行後面改成t(i)<=215.95d0才能繼續跑
: 第6行也有相同問題t(i)<=183.95d0才能繼續跑
: 但這屬於偷吃步所以值有問題
: 實在是找不到BUG 請求板上高手幫忙
: 謝謝~~
你的t(i)是整數還是實數?你如果前面沒有定義,那麼程式會自動判定為實數。
還有你的216d0指的應該是216度?
基本上我猜是real跟integer出問題
解決辦法
把t(i)設為實數
接著把 216d0 改為 216.d0 其餘照辦試試看吧
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 42.73.99.215
※ 編輯: snowanimal 來自: 42.73.99.215 (11/22 16:21)
1F:推 junny621:我的T(n)本來就以經是宣告real*8,改為216.0一樣耶= = 11/22 16:22
2F:推 weichich:我看得感覺也是整數和浮點數的問題耶... 11/25 22:44
3F:→ weichich:試看看所有浮點數包含判別式中的都加個.D0 11/25 22:45