IEEE 754四種捨入方向

2021-07-22 19:18:31 字數 898 閱讀 8877

四種捨入方向:

當有兩個最接近的可表示的值時首選「偶數」值,這與我們常見的「四捨五入」只有一點不同,對.5的捨入上,採用取偶數的方式。

如:

round(0.5) = 0;

round(1.5) = 2;

round(2.5) = 2;

對比採用四捨五入:

round(0.5) = 1;

round(1.5) = 2;

round(2.5) = 3;

之所以ieee754要這麼做,主要是因為浮點數在計算機中存放的位數有限,其表示精度有限,所以必然有部分浮點數無法精確表示,對於這部分浮點數我們就需要捨入處理。但是對於.5,它到0和1的距離一樣近,如果我們按照四捨五入的方式捨入,則計算上的誤差會一直疊加,為了平衡誤差,我們需要等概率地取捨。從統計學角度看,二進位制數捨入位的前一位是0或1的概率相等,至於為什麼捨入取偶數而不是奇數,這是個歷史問題。

c/c++的型別轉換預設採用這種捨入方式,如:

cout

<< (int)1.9; //1

cout

<< (int)-1.9; //-1

階碼變成0,尾數做相應移動後儲存到int的32位記憶體單元中,多出來的小數部分截斷。

c/c++函式floor()採用這種方式:

cout

<< floor(1.9); //1

cout

<< floor(-1.9); //-2

c/c++函式ceil()採用這種方式:

cout

<< ceil(1.9); //2

cout

<< ceil(-1.9); //-1

IEEE 754四種捨入方向

四種捨入方向 向最接近的可表示的值 當有兩個最接近的可表示的值時首選 偶數 值 向負無窮大 向下 向正無窮大 向上 以及向0 截斷 說明 捨入模式也是比較容易引起誤解的地方之一。我們最熟悉的是四捨五入模式,但是,ieee 754標準根本不支援,它的預設模式是最近捨入 round to nearest...

IEEE 754 浮點數的四種捨入方式

四種捨入方向 向最接近的可表示的值 當有兩個最接近的可表示的值時首選 偶數 值 向負無窮大 向下 向正無窮大 向上 以及向0 截斷 說明 預設模式是最近捨入 round to nearest 它與四捨五入只有一點不同,對.5的捨入上,採用取偶數的方式。舉例比較如下 例2 最近捨入模式 round 0...

IEEE754浮點數 向偶數捨入

我們大家都知道,浮點數的標準是ieee754。關於ieee754格式這裡不講了,主要是要講一下它的預設捨入方式。因為表示方法限制了浮點數的範圍和精度,所以使用浮點數只能近似地表示實數運算。而此時就不得不考慮捨入的問題了。捨入的原則是找到最接近的匹配值。為此,ieee754定義了四種不同的捨入方式 下...