BigDecimal类常用方法

1.简介

Java中的BigDecimal类,用来对超过16位有效位的数进行精确的运算。

2.构造方法

//int,string转BigDecimal
BigDecimal a = new BigDecimal(10);
//long,float,double转BigDecimal
BigDecimal b = BigDecimal.valueOf(5.55);

使用BigDecimal.valueOf()方法时, 会先把传入值转为字符串再新建BigDecimal对象, 可以避免类型转换中的精度问题

3.常用方法

//加法
BigDecimal c = a.add(b);
//减法
c = a.subtract(b);
//乘法
c = a.multiply(b);
c = a.multiply(b).setScale(4,BigDecimal.ROUND_HALF_UP);
//除法
c = a.divide(b, 2, RoundingMode.HALF_UP);
//求余数
c = a.remainder(b);
//最小值
c = a.min(b);
//最大值
c = a.max(b);
//绝对值
c = a.abs();
//相反数
c = a.negate();
//去除多余的0
a.stripTrailingZeros();
//去除多余的0, 并转为字符串
//不能使用toString(), 会返回科学计数法
String a_string = a.stripTrailingZeros().toPlainString();
//返回此BigDecimal的正负, -1为负, 0为0 , 1为正
int a_int = a.signum();
//比较大小, -1为a<b, 0为a=b , 1为a>b
a_int = a.compareTo(b);

//BigDecimal转其他类型
String b_string = b.toString();
int b_int = b.intValue();
long b_long = b.longValue();
float b_float = b.floatValue();
double b_double = b.doubleValue();

4.精度设置

a.setScale(4,BigDecimal.ROUND_HALF_UP);

1. BigDecimal.ROUND_UP
远离零的舍入模式

2. BigDecimal.ROUND_DOWN
接近零的舍入模式

3. BigDecimal.ROUND_CEILING
接近正无穷大的舍入模式

4. BigDecimal.ROUND_FLOOR
接近负无穷大的舍入模式

5. BigDecimal.ROUND_HALF_UP
向最近的一边数字舍入, 四舍五入
这个是最常用的

6. BigDecimal.ROUND_HALF_DOWN
向最近的一边数字舍入, 五舍六入

7. BigDecimal.ROUND_HALF_EVEN
向最近的一边数字舍入,四舍六入. 为五时,如果最近的一边数字是奇数,入,如果是偶数,舍

8. BigDecimal.ROUND_UNNECESSARY
计算结果是精确的,不需要舍入
结果不精确会抛出异常ArithmeticException

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值