1. 程式人生 > >delphi 四捨五入Round函式【百帖整理】

delphi 四捨五入Round函式【百帖整理】

對於XXX.5的情況,整數部分是奇數,那麼會Round Up,偶數會Round Down,例如:

x:= Round(17.5) = x = 18

x:= Round(12.5) = x = 12

一、四捨五入法
    四捨五入是一種應用非常廣泛的近似計算方法,其有算術舍入法和銀行家舍入法兩種。
    所謂算術舍入法,就是我們通常意義上的四捨五入法。其規則是:當捨去位的數值大於等於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; 

-------------------------

世界上的許多國家已廣泛採用“四捨六入法”。我國國家科委於1955年就作了推薦。“四舍 六入法”可以概括為:“四捨六入五考慮,五後非零就進一,五後皆零看奇偶,五前為偶應舍 去,五前為奇要進一。”

好像短一點的口訣叫“四舍、六入、五湊偶”

據說歐洲銀行全採用這個模式

這個都不知道,四捨六入五成雙,Round都是這樣處理的

http://www.cnblogs.com/del88/p/3788471.html