浮點數向偶數舍入的問題 Round-to-Even for Floating Point


Round-To-Even在於To-Up , To-Down, To-towards-Zero對比中,在一定數據量基礎上,更加精准。To-Up的平均值比真實數值偏大,To-Down偏小。
 
例如有效數字超出規定數位的多余數字是1001,它大於超出規定最低位的一半(即0.5),故最低位進1。
如果多余數字是0111,它小於最低位的一半,則舍掉多余數字(截斷尾數、截尾)即可。
對於多余數字是1000、正好是最低位一半的特殊情況,最低位為0則舍掉多余位,最低位為1則進位1、使得最低位仍為0(偶數)。 

注意這里說明的數位都是指二進制數。 

舉例:要求保留小數點后3位。 

對於1.0011001,舍入處理后為1.010(去掉多余的4位,加0.001) 
對於1.0010111,舍入處理后為1.001(去掉多余的4位) 
對於1.0011000,舍入處理后為1.010(去掉多余的4位,加0.001,使得最低位為0) 

對於1.1001001,舍入處理后為1.101(去掉多余的4位,加0.001) 
對於1.1000111,舍入處理后為1.100(去掉多余的4位) 
對於1.1001000,舍入處理后為1.100(去掉多余的4位,不加,因為最低位已經為0) 

對於1.01011,舍入處理后為1.011(去掉多余的2位,加0.001) 
對於1.01001,舍入處理后為1.010(去掉多余的2位) 
對於1.01010,舍入處理后為1.010(去掉多余的2位,不加) 

對於1.01111,舍入處理后為1.100(去掉多余的2位,加0.001) 
對於1.01101,舍入處理后為1.011(去掉多余的2位) 
對於1.01110,舍入處理后為1.100(去掉多余的2位,加0.001)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM