BigDecimal 常用方法

BigDecimal 常用方法

1.初始化BigDecimal
        // 初始化BigDecimal,推荐使用字符串创建BigDecimal对象
        public BigDecimal(String val) {};
        public BigDecimal(double val) {};
        public BigDecimal(int val) {};
        public BigDecimal(long val) {};
2.创建BigDecimal对象
		// String
        BigDecimal decimalExample1 = new BigDecimal("1000");
        BigDecimal decimalExample2 = new BigDecimal("20");
        BigDecimal decimalExample3 = new BigDecimal("42834");
        BigDecimal decimalExample4 = new BigDecimal("412");
        BigDecimal decimalExample5 = new BigDecimal("-3413.9654");
        // double
        BigDecimal decimalExample6 = new BigDecimal(312.438);
        // int
        BigDecimal decimalExample7 = new BigDecimal(5438);
        // Long
        BigDecimal decimalExample8 = new BigDecimal(756840324023L);
3.BigDecimal类中定义好的常量
		BigDecimal zeroDecimal = BigDecimal.ZERO;
        BigDecimal oneDecimal = BigDecimal.ONE;
        BigDecimal tenDecimal = BigDecimal.TEN;

        System.out.println("当前值:" + zeroDecimal);
        System.out.println("当前值:" + oneDecimal);
        System.out.println("当前值:" + tenDecimal);
4.BigDecimal 值之间的转换
		double doubleValue = decimalExample6.doubleValue(); // 将BigDecimal转换成double
        int intVal = decimalExample7.intValue(); // 将BigDecimal转换成int
        long longValue = decimalExample8.longValue(); // 将BigDecimal转换成long
5.取当前值的相反数、绝对值、幂函数、保留数值的精度
        // 取当前值的相反数
        BigDecimal negateDecimal = decimalExample1.negate();
        System.out.println("取当前值的相反数:negateDecimal:" + negateDecimal);

        // 取当前值的绝对值
        BigDecimal absDecimal = decimalExample5.abs();
        System.out.println("取当前值的绝对值:absDecimal:" + absDecimal);

        // 求幂函数
        BigDecimal powVal = decimalExample2.pow(2); // 20的2次方
        System.out.println("求幂函数:powVal:" + powVal);

        // 设置当前数值的精度
        // 常用的保留小数的方式 :
        // RoundingMode.HALF_UP:小数位进行四舍五入
        // RoundingMode.HALF_DOWN:小数位五舍六入
        BigDecimal scaleDecimal = decimalExample5.setScale(2, RoundingMode.HALF_UP);
        System.out.println("设置当前数值的精度:scaleDecimal:" + scaleDecimal);
6.BigDecimal之间的运算:加减乘除方法
        // 两数相加
        BigDecimal addDecimal = decimalExample1.add(decimalExample2);
        System.out.println("两数相加 addDecimal:decimalExample1 + decimalExample2 :" + addDecimal);

        // 两数相减
        BigDecimal subtractDecimal = decimalExample1.subtract(decimalExample2);
        System.out.println("两数相减 subtractDecimal:decimalExample1 - decimalExample1 :" + subtractDecimal);

        // 两数相乘
        BigDecimal multiplyDecimal = decimalExample1.multiply(decimalExample2);
        System.out.println("两数相乘 multiplyDecimal :decimalExample1 * decimalExample1 :" + multiplyDecimal);

        // 两数相除
        BigDecimal divideDecimal = decimalExample1.divide(decimalExample2);
        System.out.println("两数相除 divideDecimal :decimalExample1 / decimalExample1 :" + divideDecimal);
7.两数相除保留精度
        BigDecimal scaleHalfUpDecimal = decimalExample3.divide(decimalExample4, 5, RoundingMode.HALF_UP);
        BigDecimal scaleHalfDownDecimal = decimalExample3.divide(decimalExample4, 6, RoundingMode.HALF_DOWN);
        System.out.println("两数相除保留向上四舍五入保留5位精度:" + scaleHalfUpDecimal);
        System.out.println("两数相除保留向下五舍六入保留6位精度:" + scaleHalfDownDecimal);

输出结果如下
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值