- ??作 ? ??????? 者:是江迪呀
- ??本文關(guān)鍵詞:
日常BUG
、BUG
、問(wèn)題分析
- ??每日?? 一言 :
存在錯(cuò)誤說(shuō)明你在進(jìn)步!
一、問(wèn)題描述
直接上代碼:
@Test
public void test22() throws ParseException {
System.out.println(new BigDecimal(0).divide(new BigDecimal(54)).setScale(2,BigDecimal.ROUND_HALF_UP));
}
報(bào)錯(cuò)內(nèi)容:
Non-terminating decimal expansion; no exact representable decimal result.
二、問(wèn)題原因
原來(lái)JAVA中如果用BigDecimal
做除法的時(shí)候一定要在divide方法中傳遞第二個(gè)參數(shù),定義精確到小數(shù)點(diǎn)后幾位,否則在不整除的情況下,結(jié)果是無(wú)限循環(huán)小數(shù)時(shí),就會(huì)拋出以上異常。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-644695.html
三、問(wèn)題解決
將代碼修改成下面所示即可:文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-644695.html
@Test
public void test22() throws ParseException {
System.out.println(new BigDecimal(0).divide(new BigDecimal(54),2,BigDecimal.ROUND_HALF_UP));
}
到了這里,關(guān)于日常BUG——Java使用Bigdecimal類型報(bào)錯(cuò)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!