Java中BigDecimal的舍入模式解析(RoundingMode)
BigDecimal的舍入模式(RoundingMode)
BigDecimal.divide方法中必須設(shè)置roundingMode,不然會(huì)報(bào)錯(cuò)。
ROUND_UP
:向正無窮方向?qū)R(轉(zhuǎn)換為正無窮方向最接近的所需數(shù)值)ROUND_DOWN
:向負(fù)無窮方向?qū)RROUND_CEILING
:向原點(diǎn)的反方向?qū)RROUND_FLOOR
:向原點(diǎn)方向?qū)RROUND_HALF_UP
:“四舍五入”,如果舍棄部分的最高位大于等于 5,向正無窮方向?qū)R,否則向負(fù)無窮方向?qū)RROUND_HALF_DOWN
:“五舍六入”,如果舍棄部分的最高位大于 5,向正無窮方向?qū)R,否則向負(fù)無窮方向?qū)RROUND_HALF_EVEN
:“四舍六入五成雙”,如果舍棄部分的最高位大于等于六,或等于五并且前一位是奇數(shù),向正無窮方向?qū)R,否則向負(fù)無窮方向?qū)RROUND_UNNECESSARY
:如果需要舍入,就拋出算術(shù)異常
BigDecimal的常規(guī)用法
在java項(xiàng)目中一般來bigdecimal來進(jìn)行 精度較高的金錢 運(yùn)算 ,以及浮點(diǎn)數(shù)的運(yùn)算。
Bigdecimal a =new Bigdecimal(1); Bigdecimal b =new Bigdecimal(1);
- 加法
a.add(b)
- 減法
a.subtract(b)
- 乘法
a.multiply(b)
- 除法
a.divide(b)
在運(yùn)用中可以進(jìn)行小數(shù)點(diǎn)的格式化 運(yùn)算。
BigDecimal.setScale()方法用于格式化小數(shù)點(diǎn) setScale(1)表示保留一位小數(shù),默認(rèn)用四舍五入方式? setScale(1,BigDecimal.ROUND_DOWN)直接刪除多余的小數(shù)位,如2.35會(huì)變成2.3? setScale(1,BigDecimal.ROUND_UP)進(jìn)位處理,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)接近負(fù)無窮大的舍入,數(shù)字>0和ROUND_UP作用一樣,數(shù)字<0和ROU
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
面試官:詳細(xì)談?wù)凧ava對(duì)象的4種引用方式
這篇文章主要給大家介紹了java面試官常會(huì)問到的,關(guān)于Java對(duì)象的4種引用方式的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Java具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-05-05詳解Java并發(fā)工具類之CountDownLatch和CyclicBarrier
在JDK的并發(fā)包中,有幾個(gè)非常有用的并發(fā)工具類,它們分別是:CountDownLatch、CyclicBarrier、Semaphore和Exchanger,本文主要來講講其中CountDownLatch和CyclicBarrier的使用,感興趣的可以了解一下2023-06-06Mybatis Plus使用條件構(gòu)造器增刪改查功能的實(shí)現(xiàn)方法
這篇文章主要介紹了Mybatis-Plus使用條件構(gòu)造器增刪改查,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-05-05Springboot項(xiàng)目打war包docker包找不到resource下靜態(tài)資源的解決方案
今天小編就為大家分享一篇關(guān)于Springboot項(xiàng)目打war包docker包找不到resource下靜態(tài)資源的解決方案,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2019-03-03代理角色java設(shè)計(jì)模式之靜態(tài)代理詳細(xì)介紹
查了好多資料,發(fā)現(xiàn)還是不全,干脆自己整理吧,至少保證在我的做法正確的,以免誤導(dǎo)讀者,也是給自己做個(gè)記錄吧!2013-05-05源碼解析springbatch的job運(yùn)行機(jī)制
這篇文章主要介紹了springbatch的job是如何運(yùn)行的,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-08-08