欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

java bigdecimal语法_JAVA BigDecimal 小数点处理

发布时间:2025/4/16 编程问答 48 豆豆
生活随笔 收集整理的这篇文章主要介绍了 java bigdecimal语法_JAVA BigDecimal 小数点处理 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

语法:// 返回小数点后位数

BigDecimal.setScale();

// setScale len参数指定小数点后位数

BigDecimal.setScale(len);

PS:

setScale(1)    表示保留一位小数,默认用四舍五入方式

setScale(1,BigDecimal.ROUND_DOWN)    直接删除多余的小数位,如4.36会变成4.3

setScale(1,BigDecimal.ROUND_UP)    进位处理,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);

// 直接删除多余的小数位,如4.36会变成4.3

System.out.println(price.setScale(1,BigDecimal.ROUND_DOWN));

// 进位处理,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));

}

注意:当setScale(1)只有一个参数时,此处参数为1,如果BigDecimal 小数点后不只一位时会抛出异常 java.lang.ArithmeticException: Rounding necessary ;此时需要指定第二个参数,让程序知道怎么处理多余的位数值。

总结

以上是生活随笔为你收集整理的java bigdecimal语法_JAVA BigDecimal 小数点处理的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。