Java中BigDecimal的舍入模式解析(RoundingMode)
更新時間:2022年06月18日 11:37:57 作者:布客飛龍
這篇文章主要介紹了Java中BigDecimal的舍入模式解析(RoundingMode),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
BigDecimal的舍入模式(RoundingMode)
BigDecimal.divide方法中必須設置roundingMode,不然會報錯。
ROUND_UP
:向正無窮方向對齊(轉換為正無窮方向最接近的所需數(shù)值)ROUND_DOWN
:向負無窮方向對齊ROUND_CEILING
:向原點的反方向對齊ROUND_FLOOR
:向原點方向對齊ROUND_HALF_UP
:“四舍五入”,如果舍棄部分的最高位大于等于 5,向正無窮方向對齊,否則向負無窮方向對齊ROUND_HALF_DOWN
:“五舍六入”,如果舍棄部分的最高位大于 5,向正無窮方向對齊,否則向負無窮方向對齊ROUND_HALF_EVEN
:“四舍六入五成雙”,如果舍棄部分的最高位大于等于六,或等于五并且前一位是奇數(shù),向正無窮方向對齊,否則向負無窮方向對齊ROUND_UNNECESSARY
:如果需要舍入,就拋出算術異常
BigDecimal的常規(guī)用法
在java項目中一般來bigdecimal來進行 精度較高的金錢 運算 ,以及浮點數(shù)的運算。
Bigdecimal a =new Bigdecimal(1); Bigdecimal b =new Bigdecimal(1);
- 加法
a.add(b)
- 減法
a.subtract(b)
- 乘法
a.multiply(b)
- 除法
a.divide(b)
在運用中可以進行小數(shù)點的格式化 運算。
BigDecimal.setScale()方法用于格式化小數(shù)點 setScale(1)表示保留一位小數(shù),默認用四舍五入方式? setScale(1,BigDecimal.ROUND_DOWN)直接刪除多余的小數(shù)位,如2.35會變成2.3? setScale(1,BigDecimal.ROUND_UP)進位處理,2.35變成2.4? setScale(1,BigDecimal.ROUND_HALF_UP)四舍五入,2.35變成2.4 setScaler(1,BigDecimal.ROUND_HALF_DOWN)四舍五入,2.35變成2.3,如果是5則向下舍 setScaler(1,BigDecimal.ROUND_CEILING)接近正無窮大的舍入 setScaler(1,BigDecimal.ROUND_FLOOR)接近負無窮大的舍入,數(shù)字>0和ROUND_UP作用一樣,數(shù)字<0和ROU
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
詳解Java并發(fā)工具類之CountDownLatch和CyclicBarrier
在JDK的并發(fā)包中,有幾個非常有用的并發(fā)工具類,它們分別是:CountDownLatch、CyclicBarrier、Semaphore和Exchanger,本文主要來講講其中CountDownLatch和CyclicBarrier的使用,感興趣的可以了解一下2023-06-06Mybatis Plus使用條件構造器增刪改查功能的實現(xiàn)方法
這篇文章主要介紹了Mybatis-Plus使用條件構造器增刪改查,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-05-05Springboot項目打war包docker包找不到resource下靜態(tài)資源的解決方案
今天小編就為大家分享一篇關于Springboot項目打war包docker包找不到resource下靜態(tài)資源的解決方案,小編覺得內容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2019-03-03