delphi 四捨五入取整函數

來源:互聯網
上載者:User

標籤:

一、四捨五入法
    四捨五入是一種應用非常廣泛的近似計算方法,其有算術舍入法和銀行家舍入法兩種。
    所謂算術舍入法,就是我們通常意義上的四捨五入法。其規則是:當捨去位的數值大於等於5時,在捨去該位的同時向前位進一;當捨去位的數值小於5時,則直接捨去該位。
    所謂銀行家舍入法,其實質是一種四捨六入五留雙(又稱四捨六入五奇偶)法。其規則是:當捨去位的數值小於5時,直接捨去該位;當捨去位的數值大於等於6 時,在捨去該位的同時向前位進一;當捨去位的數值等於5時,如果前位元值為奇,則在捨去該位的同時向前位進一,如果前位元值為偶,則直接捨去該位。
    綜上所述,兩種舍入法所得結果不盡一致,因此在使用時必鬚根據實際需要加以區別。否則會出現一些莫明其妙的偏差。
    二、Delphi中的四捨五入函數
    眾所周知,Delphi中有一個四捨五入取整函數Round。但它是按銀行家舍入法的規則實施捨入操作的,Delphi中沒有按算術舍入法規則實施捨入操 作的四捨五入取整函數。為此,本人編寫了一個基於算術舍入法的四捨五入取整函數RoundEx作為對Delphi的補充。具體實現如下: 

 


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


delphi 四捨五入取整函數

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.