Java BigDecimal实现加减乘除运算代码
Java中原生数据类型double
和float
的计算结果不一定准确,在金额等精度要求高的场景下,需要使用BigDecimal
类进行运算。
BigDecimal概述
BigDecimal
类是一个任意精度的,有符号十进制数的不可变对象,它提供了精确的数值运算。它比基本数据类型double
和float
更准确。在商业计算时,我们一般都使用BigDecimal
进行数字的运算,可以避免精度上的误差。
构造方法
BigDecimal BigDecimal(String str); // 将字符串表示的数字转换为BigDecimal类型
BigDecimal BigDecimal(double v); // 将double类型转换为BigDecimal类型
BigDecimal BigDecimal(int i); // 将int类型转换为BigDecimal类型
加法运算
BigDecimal add(BigDecimal augend); // 加法运算,返回相加后的结果
例子:
BigDecimal a = new BigDecimal("1.23");
BigDecimal b = new BigDecimal("4.56");
BigDecimal c = a.add(b); // c等于5.79
减法运算
BigDecimal subtract(BigDecimal subtrahend); // 减法运算,返回相减后的结果
例子:
BigDecimal a = new BigDecimal("5.67");
BigDecimal b = new BigDecimal("1.23");
BigDecimal c = a.subtract(b); // c等于4.44
乘法运算
BigDecimal multiply(BigDecimal multiplicand); // 乘法运算,返回相乘后的结果
例子:
BigDecimal a = new BigDecimal("2.5");
BigDecimal b = new BigDecimal("3.8");
BigDecimal c = a.multiply(b); // c等于9.5
除法运算
BigDecimal divide(BigDecimal divisor); // 除法运算,返回相除后的结果
例子:
BigDecimal a = new BigDecimal("5.0");
BigDecimal b = new BigDecimal("3.0");
BigDecimal c = a.divide(b); // c等于1.6666666667
需要注意的是,除法运算时,可能会出现除不尽的情况。此时,我们可以使用如下方法,定义结果保留的小数位数和舍入模式。
BigDecimal divide(BigDecimal divisor, int scale, RoundingMode roundingMode);
// 参数scale:结果保留的小数位数
// 参数roundingMode:舍入模式
例子:
BigDecimal a = new BigDecimal("5.0");
BigDecimal b = new BigDecimal("3.0");
BigDecimal c = a.divide(b, 2, RoundingMode.HALF_UP); // c等于1.67
以上就是 Java BigDecimal实现加减乘除运算代码的完整攻略,希望能对你有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:【Java】BigDecimal实现加减乘除运算代码 - Python技术站