線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:626
推到 Plurk!
推到 Facebook!

為什麼運算結果有問題????

答題得分者是:william
angel
一般會員


發表:13
回覆:9
積分:4
註冊:2002-03-12

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-04-09 11:22:32 IP:203.204.xxx.xxx 未訂閱
請教各位前輩: 我用MSSQL的資料庫,以及Delphi寫程式,但最近碰到一個奇怪的問題?? 假設兩個變數type相同,當我取得資料庫的資料後,經過一些運算,再將結果給這兩個變數,之後這兩變數再比較,假設結果兩變數是相同的!但不知道為什麼居然會出現 1不等於1的結果??? 有同事說可能是精確值的問題所以試試將結果作四捨五入,但有時行的通有時卻不行??? 不知道這到底是什麼原因??要如何解決呢??? 拜託各位前輩指教!!!!
william
版主


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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-04-09 11:29:59 IP:147.8.xxx.xxx 未訂閱
It could be the result of round-off error for floating point in computers, and it is normal. I think you may try to introduce a tolerance in the comparsion, e.g.    abs(var1-var2)<1e-10 abs(1.0-var1/var2)<1e-10, etc.
chih
版主


發表:48
回覆:1186
積分:639
註冊:2002-04-02

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-04-09 14:16:40 IP:211.74.xxx.xxx 未訂閱
可以些出實際的Code嗎?不然很難猜出是什麼狀況ㄋ..
引言: 請教各位前輩: 我用MSSQL的資料庫,以及Delphi寫程式,但最近碰到一個奇怪的問題?? 假設兩個變數type相同,當我取得資料庫的資料後,經過一些運算,再將結果給這兩個變數,之後這兩變數再比較,假設結果兩變數是相同的!但不知道為什麼居然會出現 1不等於1的結果??? 有同事說可能是精確值的問題所以試試將結果作四捨五入,但有時行的通有時卻不行??? 不知道這到底是什麼原因??要如何解決呢??? 拜託各位前輩指教!!!!
系統時間:2024-05-13 20:41:42
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!