Re: [問題] 實在是找不到BUG~"~

看板Fortran作者 (動物先生)時間13年前 (2011/11/22 16:13), 編輯推噓2(201)
留言3則, 2人參與, 最新討論串2/3 (看更多)
※ 引述《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)

11/22 16:22, , 1F
我的T(n)本來就以經是宣告real*8,改為216.0一樣耶= =
11/22 16:22, 1F

11/25 22:44, , 2F
我看得感覺也是整數和浮點數的問題耶...
11/25 22:44, 2F

11/25 22:45, , 3F
試看看所有浮點數包含判別式中的都加個.D0
11/25 22:45, 3F
文章代碼(AID): #1EorczpK (Fortran)
討論串 (同標題文章)
文章代碼(AID): #1EorczpK (Fortran)