程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> Delphi中的四捨五入問題

Delphi中的四捨五入問題

編輯:Delphi
    在Delphi中使用Round函數得到的答案有時與我們所預期的會不太一樣:
  采用的是四捨六入五留雙。即當捨或入位大於或小於五時按四捨五入來處理,而當捨或入位等於五時,就要看前面一位是什麼,根據奇進偶不進,它總是返回一個偶數值。
       示例             結果
  i:= Round(11.5)        12
  i:= Round(10.5)        10

         這種Round其實是按照銀行家算法,統計學上一般都用這種算法,比傳統的"四捨五入"要科學。
  如果要使用傳統的"四捨五入"方法,可以使用下面函數:

  function RoundClassic(R: Real): Int64;
  begin
    Result:= Trunc(R);
    if Frac(R) >= 0.5 then
      Result:= Result + 1;
  end;

         其實在VB、Excel、.Net相關的語言中都有這個問題。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved