BigDecimal中有哪些常用的API呢?
下文笔者将讲述BigDecimal中常用API的简介说明,如下所示
BigDecimal的使用场景
BigDecimal在java开发中经常使用 它主要应用金额数据类型计算 因为使用BigDecimal可以避免精度丢失
BigDecimal常见API
1、加法 add 2、减法 subtract 3、乘法 multiply 4、除法 divide 5、求余 divideAndRemainder 6、比较大小 compareTo 7、处理小数
BigDecimal常见API示例分享
1、加法 add BigDecimal a = new BigDecimal(875); BigDecimal b = new BigDecimal(10000); a = a.add(b); System.out.println(a.add(b));//10875 2、减法 subtract BigDecimal a = new BigDecimal(875); BigDecimal b = new BigDecimal(10000); a = a.subtract(b); System.out.println(a); 3、乘法 multiply BigDecimal a = new BigDecimal(875); BigDecimal b = new BigDecimal(10000); BigDecimal c = a.multiply(b); System.out.println("a*b=" + c); 4、除法 divide BigDecimal a = new BigDecimal(875); BigDecimal b = new BigDecimal(10000); c = a.divide(b); System.out.println("a/b=" + c); 5、求余 divideAndRemainder divideAndRemainder方法会返回一个长度为2的BigDecimal数组,第一个为商,第二个为余数 BigDecimal a = new BigDecimal(875); 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(875); 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: 当正数来说是舍弃小数后,加一,对于负数来说,舍弃小数后减一 如:200.4,取整数为201,-200.5,取整数为-201 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);
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。