BigDecimal中有哪些常用的API呢?

乔欣 Java经验 发布时间:2023-01-09 22:19:06 阅读数:11661 1
下文笔者将讲述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);
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/JavaJingYan/202301/16732740085320.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者