Delphi的四捨五入函式

2021-05-05 16:01:11 字數 803 閱讀 4672

小中

大一、四捨五入法

四捨五入是一種應用非常廣泛的近似計算方法,其有算術捨入法和銀行家捨入法兩種。

所謂算術捨入法,就是我們通常意義上的四捨五入法。其規則是:當捨去位的數值大於等於5時,在捨去該位的同時向前位進一;當捨去位的數值小於5時,則直接捨去該位。

所 謂銀行家捨入法,其實質是一種四捨六入五留雙(又稱四捨六入五奇偶)法。其規則是:當捨去位的數值小於5時,直接捨去該位;當捨去位的數值大於等於6時, 在捨去該位的同時向前位進一;當捨去位的數值等於5時,如果前位數值為奇,則在捨去該位的同時向前位進一,如果前位數值為偶,則直接捨去該位。

綜上所述,兩種捨入法所得結果不盡一致,因此在使用時必須根據實際需要加以區別。否則會出現一些莫明其妙的偏差。

二、delphi中的四捨五入函式

眾所周知,delphi中有乙個四捨五入取整函式round。但它是按銀行家捨入法的規則實施捨入操作的,delphi中沒有按算術捨入法規則實施捨入操作的四捨五入取整函式。

在delphi中使用四捨五入函式一直是使用round,可是有時候發現,使用它得到的答案與我們預期的會不太一樣。

舉例:i := round(11.5)    結果: i=12

i := round(10.5)    結果: i=10

是的,按照我們的預期,第二個函式應該返回11才對,可是,為什麼會這樣呢?

對於***.5的情況,整數部分是奇數,那麼會round up,偶數會round down。難道是delphi的bug?

no!! 讓我們看看<

Delphi的四捨五入函式

一 四捨五入法 四捨五入是一種應用非常廣泛的近似計算方法,其有算術捨入法和銀行家捨入法兩種。所謂算術捨入法,就是我們通常意義上的四捨五入法。其規則是 當捨去位的數值大於等於5時,在捨去該位的同時向前位進一 當捨去位的數值小於5時,則直接捨去該位。所謂銀行家捨入法,其實質是一種四捨六入五留雙 又稱四捨...

Delphi中的四捨五入函式

一 四捨五入法 四捨五入是一種應用非常廣泛的近似計算方法,其有算術捨入法和銀行家捨入法兩種。所謂算術捨入法,就是我們通常意義上的四捨五入法。其規則是 當捨去位的數值大於等於 5時,在捨去該位的同時向前位進一 當捨去位的數值小於 5時,則直接捨去該位。所謂銀行家捨入法,其實質是一種四捨六入五留雙 又稱...

qt的四捨五入 Qt(C )四捨五入

qt現在是四捨六入五成雙,要想四捨五入得自己想辦法,實現如下 include include double c1 3.435 double c2 3.445 double c3 3.4351 double c4 3.4451 double c5 3.445 qdebug qdebug qdebug ...