全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1043
推到 Plurk!
推到 Facebook!

double 疑問

尚未結案
miga
初階會員


發表:61
回覆:92
積分:30
註冊:2002-08-27

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-10-24 11:04:45 IP:202.39.xxx.xxx 未訂閱
各位大大請問一下: VAR A:DOUBLE;    A:=STRTOfLOAT('0.4) IF a>0.4 THEN SHOWMESSAGE('ERROR');    為什麼0.4轉出來的值會大於實際的0.4呢?     請各位大大幫我解惑吧~~
wyndog
資深會員


發表:7
回覆:362
積分:348
註冊:2004-10-12

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-10-24 15:01:06 IP:60.248.xxx.xxx 未訂閱
這是精確度不夠的問題 所以,最好是不要直接拿來比,比較好    以 if A > 0.4 為例 後面的 0.4 可能會被表示成 0.399999999 之類的 (學過浮點數表示法的話,可以自己換算看看) 這樣 A 當然會比 0.4 大    如果真要比大小的話,通常是用相減後,跟一個容忍值比較 比如說,像這樣
  IF abs(a - 0.4) > 1E-7 THEN
    ShowMessage('Error');
加 abs 的原因是因為有可能會略大或略小
william
版主


發表:66
回覆:2535
積分:3048
註冊:2002-07-11

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-10-25 12:46:42 IP:147.8.xxx.xxx 未訂閱
Just a reminder:    There exists a SameValue function in the Math unit < face='Lucida Console'>http://pywong.hk.st
miga
初階會員


發表:61
回覆:92
積分:30
註冊:2002-08-27

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-10-25 14:10:32 IP:202.39.xxx.xxx 未訂閱
原來是這樣… 難怪一直試都不行 謝謝 reptile和william 大仔 這題分數就給reptile囉
系統時間:2024-11-23 11:10:12
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!