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

請問為何 Round 會變成 五捨六入, 而不是四捨五入呢?

答題得分者是:ccchen
kant
一般會員


發表:18
回覆:32
積分:10
註冊:2002-06-08

發送簡訊給我
#1 引用回覆 回覆 發表時間:2002-10-08 01:33:16 IP:218.163.xxx.xxx 未訂閱
請問各為先進, 我在單一的 From 中, 試過在 Button 很單純的試一下 Round 這個函數. 卻發現要 .6 才會進位, 而.5 卻不會進位. 請問為何會有這種現象呢? 試過將變數型態設為 Currency 及 Double. 結果都一樣, 不知是哪裡出了問題呀? 如果有先進知道的話, 請指導一下, 謝謝! Kant
------
Kant
ccchen
版主


發表:61
回覆:940
積分:1394
註冊:2002-04-15

發送簡訊給我
#2 引用回覆 回覆 發表時間:2002-10-08 07:56:50 IP:61.219.xxx.xxx 未訂閱
Round或RoundTo是用四捨六入, 稱為Banker's rounding. 五的話看前面是偶數就捨掉, 奇數就進入 例如23.5->24 24.5->24 此種方法使進位和捨掉之概率一樣 若一定要四捨五入, 可用SimpleRoundTo
領航天使
站長


發表:12216
回覆:4186
積分:4084
註冊:2001-07-25

發送簡訊給我
#3 引用回覆 回覆 發表時間:2002-10-08 09:26:56 IP:218.163.xxx.xxx 未訂閱
引言: Round或RoundTo是用四捨六入, 稱為Banker's rounding. 五的話看前面是偶數就捨掉, 奇數就進入
Round或RoundTo用的方法叫作 四捨六入 五成雙 ~~~Delphi K.Top討論區站長~~~
------
~~~Delphi K.Top討論區站長~~~
Miles
尊榮會員


發表:27
回覆:662
積分:622
註冊:2002-07-12

發送簡訊給我
#4 引用回覆 回覆 發表時間:2002-10-08 10:58:28 IP:210.58.xxx.xxx 未訂閱
如站長所說是四捨六入五成雙    若要四捨五入可試試
i := 11.5;
Trunc(round(i + 0.5)); --> 12    i := 11.4;
Trunc(round(i + 0.5));  -->11    
抱歉 加號會不見 只好寫中文字"加"
------


我不是高手, 高手是正在銀幕前微笑的人.
kant
一般會員


發表:18
回覆:32
積分:10
註冊:2002-06-08

發送簡訊給我
#5 引用回覆 回覆 發表時間:2002-10-08 21:30:41 IP:218.163.xxx.xxx 未訂閱
這裡果然是高手如雲ㄚ~~ 來對地方了 ^o^ 謝謝大家的指導!! 奇怪了? 我買的書怎沒提到 Round() 有這個特性呢 @_@ Kant
------
Kant
鈴鐺
初階會員


發表:33
回覆:81
積分:35
註冊:2002-03-13

發送簡訊給我
#6 引用回覆 回覆 發表時間:2002-10-09 19:11:46 IP:211.21.xxx.xxx 未訂閱
引言: 若要四捨五入可試試
i := 11.5;
Trunc(round(i + 0.5)); --> 12
此寫法有誤, 應為 trunc(i+0.5) 下表,用程式在 delphi 6.0 執行的結果, 我看了好久的英文說明書,還是不大了解,實地跑程式就瞭解了. (反白下表,可看跑出的結果)
Function -3.60-3.50-2.50-1.50-0.50-0.400.400.501.502.503.503.60
Round -4-4-2-200002244
RoundTo -4-4-2-200002244
SimpleRoundTo -3-3-2-100012344
Trunc(r+0.5)-3-3-2-100012344
Trunc-3-3-2-100001233
Ceil-3-3-2-100112344
Floor-4-4-3-2-1-1001233
Miles
尊榮會員


發表:27
回覆:662
積分:622
註冊:2002-07-12

發送簡訊給我
#7 引用回覆 回覆 發表時間:2002-10-13 11:43:33 IP:211.21.xxx.xxx 未訂閱
引言:
引言: 若要四捨五入可試試
i := 11.5;
Trunc(round(i + 0.5)); --> 12
此寫法有誤, 應為 trunc(i+0.5)
不好意思一時不查, 前個例子Round皆可以拿掉, 再使用無條件捨去Trunc. 謝謝鈴鐺兄的指正.
------


我不是高手, 高手是正在銀幕前微笑的人.
領航天使
站長


發表:12216
回覆:4186
積分:4084
註冊:2001-07-25

發送簡訊給我
#8 引用回覆 回覆 發表時間:2002-10-13 12:04:06 IP:61.219.xxx.xxx 未訂閱
非常感謝 鈴鐺兄 熱心提供round測試的報告表! ~~~Delphi K.Top討論區站長~~~
------
~~~Delphi K.Top討論區站長~~~
系統時間:2024-05-06 1:44:26
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!