概述
BigDecimal常用API
- 1、加法 add
- 2、减法 subtract
- 3、乘法 multiply
- 4、除法 divide
- 5、求余 divideAndRemainder
- 6、比较大小 compareTo
- 7、处理小数
BigDecimal 在日常开发中比较常用,一些涉及金额的计算及为了确保精度计算都会使用,下面是一些常用的API
1、加法 add
BigDecimal a = new BigDecimal(999);
BigDecimal b = new BigDecimal(10000);
a = a.add(b);
System.out.println(a.add(b));//10999
2、减法 subtract
BigDecimal a = new BigDecimal(999);
BigDecimal b = new BigDecimal(10000);
a = a.subtract(b);
System.out.println(a);//-9001
3、乘法 multiply
BigDecimal a = new BigDecimal(999);
BigDecimal b = new BigDecimal(10000);
BigDecimal c = a.multiply(b);
System.out.println("a*b=" + c);
4、除法 divide
BigDecimal a = new BigDecimal(999);
BigDecimal b = new BigDecimal(10000);
c = a.divide(b);
System.out.println("a/b=" + c);
5、求余 divideAndRemainder
divideAndRemainder方法会返回一个长度为2的BigDecimal数组,第一个为商,第二个为余数
BigDecimal a = new BigDecimal(999);
BigDecimal b = new BigDecimal(10000);
BigDecimal[] c = a.divideAndRemainder(b);
System.out.println("a/b=" + c[0] + "余数" + c[1]);
6、比较大小 compareTo
BigDecimal可以通过compareTo方法来进行比较。
返回的结果是int类型,-1表示小于,0是等于,1是大于。
BigDecimal a = new BigDecimal(999);
BigDecimal b = new BigDecimal(10000);
if (a.compareTo(b) > 0) {
System.out.println("a大于b");
} else if (a.compareTo(b) == 0) {
System.out.println("a等于b");
} else {
System.out.println("a小于b");
}
7、处理小数
下面是取舍模式
- ROUND_UP : 对于正数来说是舍弃小数后,加一,对于负数来说,舍弃小数后减一。例如:100.4,取整数为101,-100.5,取整数为-101
- ROUND_DOWN : 直接舍弃小数或者说精确位后的小数
- ROUND_CEILING : 如果 BigDecimal 是正的,则做 ROUND_UP 操作;如果为负,则做 ROUND_DOWN 操作 (取附近较大的整数)。
- ROUND_FLOOR : 如果 BigDecimal 是正的,则做 ROUND_DOWN 操作;如果为负,则做 ROUND_UP 操作 (取附近较小的整数)。
- ROUND_HALF_UP : 四舍五入,0.5向上取整 100.5 -> 101
- ROUND_HALF_DOWN : 四舍五入,0.5向下取整 100.5 -> 100
- ROUND_UNNECESSARY : 如果存在小数位,就抛ArithmeticException 异常。
单独设置
BigDecimal a = new BigDecimal("998.5");
BigDecimal up = a.setScale(0, RoundingMode.UP);
System.out.println( "up ======= " + up);
BigDecimal down = a.setScale(0, RoundingMode.DOWN);
System.out.println( "down ======= " + down);
//取最近的较大整数
BigDecimal ceiling = a.setScale(0, RoundingMode.CEILING);
System.out.println( "ceiling ======= " + ceiling);
//取最近的较小整数
BigDecimal floor = a.setScale(0, RoundingMode.FLOOR);
System.out.println( "floor ======= " + floor);
//四舍五入,0.5向上取整
BigDecimal halfUp = a.setScale(0, RoundingMode.HALF_UP);
System.out.println( "halfUp ======= " + halfUp);
//四舍五入,0.5向下取整
BigDecimal halfDown = a.setScale(0, RoundingMode.HALF_DOWN);
System.out.println( "halfDown ======= " + halfDown);
除法运用
//结果保留两位小数
BigDecimal divide = a.divide(b, 2, RoundingMode.UP);
System.out.println(divide);
最后
以上就是清秀煎饼为你收集整理的BigDecimal常用API的全部内容,希望文章能够帮你解决BigDecimal常用API所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复