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

Delphi5 內附的報表程式 ReportSmith 小數點位數會五捨六入?

缺席
bestlong
站務副站長


發表:126
回覆:734
積分:512
註冊:2002-10-19

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-09-23 10:12:24 IP:211.22.xxx.xxx 未訂閱
ReportSmith 大概可以算是古董級的報表程式, 因換了新的工作環境而開發工具使用Delphi5 碰到了這個奇怪的問題, 就是在報表欄位指定 Format Field 的小數點顯示位數時, 原始資料為 0.625 時再指定報表列印至小數點第二位時卻不會進位, 同時剛好有一筆記錄為 0.636 卻會進位顯示 0.64 我看到都傻眼了 不知道有人知道這是否為 ReportSmith 的特性或是Bugs. 我是雪龍
------
http://blog.bestlong.idv.tw/
http://www.bestlong.idv.tw/
http://delphi-ktop.bestlong.idv.tw/
shieh2700
高階會員


發表:0
回覆:127
積分:100
註冊:2002-06-13

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-10-02 01:17:10 IP:61.216.xxx.xxx 未訂閱
引言: ReportSmith 大概可以算是古董級的報表程式, 因換了新的工作環境而開發工具使用Delphi5 碰到了這個奇怪的問題, 就是在報表欄位指定 Format Field 的小數點顯示位數時, 原始資料為 0.625 時再指定報表列印至小數點第二位時卻不會進位, 同時剛好有一筆記錄為 0.636 卻會進位顯示 0.64 我看到都傻眼了 不知道有人知道這是否為 ReportSmith 的特性或是Bugs. 我是雪龍
使用 Delphi 的 Round 函數得出來的結果都會是這樣, 它採用的方式是四捨六入, 五就看運氣. 若進位之後的結果為雙數則進位, 反之則捨去. 可作個小實驗: ShowMessage(FloatToStr(Round(2.5))); => 結果為 2 ShowMessage(FloatToStr(Round(3.5))); => 結果為 4 ShowMessage(FloatToStr(Round(4.5))); => 結果為 4 ShowMessage(FloatToStr(Round(5.5))); => 結果為 6 以機率的角度來看, 這樣的方式反倒比較精確, 若不能接受這樣的結果... 自己寫一個吧!
系統時間:2024-05-16 19:02:13
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!