java中BigDecimal小結(jié)一

最近項(xiàng)目里面用bigdecimal來(lái)進(jìn)行計(jì)算,寫下這個(gè)筆記,直接上代碼

比較函數(shù) a.compareTo(b) 結(jié)果如下:

小于:-1?

?等于:0

?大于:1


@Test

public voidtestBigDeciaml(){

//兩個(gè)數(shù)進(jìn)行比較

BigDecimal t1 =newBigDecimal(12);

BigDecimal t2 =newBigDecimal(34);

System.out.println("小于"+t1.compareTo(t2));

BigDecimal t3 =newBigDecimal(34);

BigDecimal t4 =newBigDecimal(34);

System.out.println("等于"+t3.compareTo(t4));

BigDecimal t5 =newBigDecimal(56);

BigDecimal t6 =newBigDecimal(34);

System.out.println("大于"+t5.compareTo(t6));

//兩個(gè)數(shù)相除除不盡 會(huì)拋出異常

BigDecimal t7 =newBigDecimal("2.00");

BigDecimal t8 =newBigDecimal("1.10");

//java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result.

//? System.out.println("除不盡拋出異常:=="+t1.divide(t2));

//拋出異常用一下方法解決

System.out.println("除不盡解決方法:"+t7.divide(t8,0,BigDecimal.ROUND_DOWN));

}

兩個(gè)數(shù)相除

divide(BigDecimal divisor,intscale,introundingMode)


intscale:相除之后結(jié)果保留位數(shù)

introundingMode:相除之后結(jié)果小數(shù)時(shí)候按什么樣式取出結(jié)果這個(gè)是枚舉

ROUND_UP:向上取整

ROUND_DOWN : 向下取模 直接去掉小數(shù)后面數(shù)據(jù)

ROUND_CEILING

ROUND_FLOOR

ROUND_HALF_UP

ROUND_HALF_DOWN

ROUND_HALF_EVEN

ROUND_UNNECESSARY

java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result. 除不盡原因 可以參考一下

http://blog.csdn.net/niannian_315/article/details/24354251

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容