java bigdecimal语法_JAVA BigDecimal 小数点处理
語法://?返回小數(shù)點(diǎn)后位數(shù)
BigDecimal.setScale();
//?setScale?len參數(shù)指定小數(shù)點(diǎn)后位數(shù)
BigDecimal.setScale(len);
PS:
setScale(1)????表示保留一位小數(shù),默認(rèn)用四舍五入方式
setScale(1,BigDecimal.ROUND_DOWN)????直接刪除多余的小數(shù)位,如4.36會(huì)變成4.3
setScale(1,BigDecimal.ROUND_UP)????進(jìn)位處理,4.36變成4.4
setScale(1,BigDecimal.ROUND_HALF_UP)????四舍五入,4.36變成4.4
setScale(1,BigDecimal.ROUND_HALF_DOWN)????四舍五入末尾大于5向上取舍,小于等于5向下取舍,4.36變成4.4,如果是4.35則向下舍變成4.3
使用:@Test
public?void?test14()?{
BigDecimal?price?=?new?BigDecimal(4.35);
//?直接刪除多余的小數(shù)位,如4.36會(huì)變成4.3
System.out.println(price.setScale(1,BigDecimal.ROUND_DOWN));
//?進(jìn)位處理,4.36變成4.4
System.out.println(price.setScale(1,BigDecimal.ROUND_UP));
//?四舍五入,4.36變成4.4
System.out.println(price.setScale(1,BigDecimal.ROUND_HALF_UP));
//?四舍五入末尾大于5向上取舍,小于等于5向下取舍
System.out.println(price.setScale(1,BigDecimal.ROUND_HALF_DOWN));
//BigDecimal?setScale?=?price.multiply(new?BigDecimal(0.9));
}
注意:當(dāng)setScale(1)只有一個(gè)參數(shù)時(shí),此處參數(shù)為1,如果BigDecimal 小數(shù)點(diǎn)后不只一位時(shí)會(huì)拋出異常?java.lang.ArithmeticException: Rounding necessary ;此時(shí)需要指定第二個(gè)參數(shù),讓程序知道怎么處理多余的位數(shù)值。
總結(jié)
以上是生活随笔為你收集整理的java bigdecimal语法_JAVA BigDecimal 小数点处理的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: bstr java_BSTR详解一 -B
- 下一篇: Java创建MySQL句柄_MySQL创