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

為何BcdDivide 結果不準確?

尚未結案
star0125
一般會員


發表:1
回覆:1
積分:0
註冊:2003-12-02

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-05-06 15:13:31 IP:140.115.xxx.xxx 未訂閱
原本以為TBcd 的運算最精確, 結果都讓我滿意,一直到我遇見下面的運算.... 540/6 應該等於90 結果卻是9,請問是哪裡出了問題呀?還是我應該改用Currency? 例如: var AAA,BBB:TBcd; begin BcdDivide('540','6',AAA); showmessage(BCDToStr(AAA)); end;
yachanga
資深會員


發表:24
回覆:335
積分:296
註冊:2003-09-27

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-05-07 11:37:58 IP:210.68.xxx.xxx 未訂閱
Hi star0125: 我也測試了一下,感覺真像是Delphi's BUG.. 若被除數尾數有0,當除數是質數倍數時, 若整除就會有問題.. 540 除以 (3,6,7,9,13,14,15,17-----)都會有問題...    要不然就是您再多寫幾行code, 當整除時用替代方法, 不過這樣看起來也很笨 搞不好又有其他Bug..... >~悠遊法國號~
star0125
一般會員


發表:1
回覆:1
積分:0
註冊:2003-12-02

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-05-10 09:56:54 IP:140.115.xxx.xxx 未訂閱
謝謝 yachanga 的發現  ........................ 若被除數尾數有
Wesly
中階會員


發表:14
回覆:103
積分:53
註冊:2002-05-31

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-05-10 12:19:12 IP:218.170.xxx.xxx 未訂閱
如同yachanga兄所這這應該是Delphi's BUG,錯誤是在FmtBcd->RoundAt函數,所以在個人認為就算改為Currency也沒有用的,除非改正這個函數。 希望能對你有所幫助.
系統時間:2024-04-19 1:15:53
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!