JavaBigDecimal类的使用方法详解
发布时间:2023-06-26 21:36:28
Java中的BigDecimal类是表示任意长度的十进制数的类,可以进行高精度计算,避免了使用double等浮点数时出现的精度问题。下面介绍一些BigDecimal类的基本使用方法。
1. 创建一个BigDecimal对象
BigDecimal bigDecimal = new BigDecimal("123.456");
或者使用double类型创建
BigDecimal bigDecimal = new BigDecimal(123.456);
2. 加法
BigDecimal bigDecimal1 = new BigDecimal("123.456");
BigDecimal bigDecimal2 = new BigDecimal("789.123");
BigDecimal result = bigDecimal1.add(bigDecimal2);
3. 减法
BigDecimal bigDecimal1 = new BigDecimal("789.123");
BigDecimal bigDecimal2 = new BigDecimal("123.456");
BigDecimal result = bigDecimal1.subtract(bigDecimal2);
4. 乘法
BigDecimal bigDecimal1 = new BigDecimal("123.456");
BigDecimal bigDecimal2 = new BigDecimal("789.123");
BigDecimal result = bigDecimal1.multiply(bigDecimal2);
5. 除法(除法涉及到小数位数问题,需要指定精确度和舍入模式)
BigDecimal bigDecimal1 = new BigDecimal("123.456");
BigDecimal bigDecimal2 = new BigDecimal("789.123");
BigDecimal result = bigDecimal1.divide(bigDecimal2,5,RoundingMode.HALF_UP);
其中,5表示保留小数点后5位,RoundingMode.HALF_UP表示四舍五入。
6. 取余数
BigDecimal bigDecimal1 = new BigDecimal("123.456");
BigDecimal bigDecimal2 = new BigDecimal("789.123");
BigDecimal result = bigDecimal1.remainder(bigDecimal2);
7. 比较大小
BigDecimal bigDecimal1 = new BigDecimal("123.456");
BigDecimal bigDecimal2 = new BigDecimal("789.123");
int result = bigDecimal1.compareTo(bigDecimal2);
如果返回值为-1,则表示bigDecimal1小于bigDecimal2;如果返回值为0,则表示两个数相等;如果返回值为1,则表示bigDecimal1大于bigDecimal2。
8. 转换为其他数据类型
BigDecimal bigDecimal = new BigDecimal("123.456");
int intValue = bigDecimal.intValue();
long longValue = bigDecimal.longValue();
float floatValue = bigDecimal.floatValue();
double doubleValue = bigDecimal.doubleValue();
9. 判断是否相等
BigDecimal bigDecimal1 = new BigDecimal("123.456");
BigDecimal bigDecimal2 = new BigDecimal("123.4560");
boolean result = bigDecimal1.equals(bigDecimal2); // 返回true
总之,Java中的BigDecimal类可以非常方便地进行高精度计算,使用时需要注意精度和舍入模式的设置。
