java BigDecimal加减乘除,向上、向下取整

Java BigDecimal类型的 加减乘除运算不能像C#一样简单,需要调用方法:

加法:add

减法:subtract

乘法:multiply

除法:divide

 

可参考下面代码:

BigDecimal bignum1 = new BigDecimal("10"); 

BigDecimal bignum2 = new BigDecimal("5"); 

BigDecimal bignum3 = null; 

   

//加法 

bignum3 =  bignum1.add(bignum2);      

System.out.println("求和:" + bignum3); 

   

//减法 

bignum3 = bignum1.subtract(bignum2); 

System.out.println("求差:" + bignum3); 

   

//乘法 

bignum3 = bignum1.multiply(bignum2); 

System.out.println("乘法积:" + bignum3); 

   

//除法 

bignum3 = bignum1.divide(bignum2); 

System.out.println("除法结果:" + bignum3); 

 

在进行除法计算时,需要商是无线循环小数时,会抛出异常java.lang.ArithmeticException: Non-terminating decimal expansion; no exact representable decimal result,此时需要设置小数点后的余位!例如:

bignum3 =  bignum1.divide(bignum2,2,BigDecimal.ROUND_UP );

 

//取整
BigDecimal bd = new BigDecimal(“12.1”);
long l = bd.setScale( 0, BigDecimal.ROUND_UP ).longValue(); // 向上取整
long l = bd.setScale( 0, BigDecimal.ROUND_DOWN ).longValue(); // 向下取整

//保留小数位可以通过setScale()方法设置小数位,和取整/取余的方式

 

//如果是要对整数取余就要通过DecimalFormat类来做格式化处理,例如:

数值12 保留两位小数:

DecimalFormat df = new DecimalFormat("#.00");

BigDecimal date = df.format(new BigDecimal(12)); // date为12.00
  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值