BigDecimal舍入模式ROUND_HALF_UP和ROUND_HALF_DOWN區別

ROUND_HALF_UP和ROUND_HALF_DOWN都是向最接近的數字舍入,區別在於當與相鄰的數字距離相等時兩者的舍入模式不同

ROUND_HALF_UP是我們常用的四捨五入,即舍入部分大於等於0.5時進位,否則丟棄捨入部分

ROUND_HALF_UP通俗地說是五舍六入,即舍入部分大於0.5時進位,否則丟棄捨入部分

例如:當num=1.5,保留0位,ROUND_HALF_UP=2 , ROUND_HALF_DOWN=1, 舍入部分爲0.5

值得注意的是,num=1.55,保留1位,ROUND_HALF_UP=1.6,而ROUND_HALF_DOWN=1.6,咋一看讓人感到很疑惑,其實這是由於計算機以二進制的形式存儲數據,1.55在計算機中實際上表示爲1.5500000000000000444089209850062616169452667236328125

舍入部分爲0.500000000000000444089209850062616169452667236328125 > 0.5,自然地向左進位。而我們習慣了十進制,以爲舍入部分爲0.5,難免對此產生誤解。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章