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

    Java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由 Sun Microsystems 公司于 1995 年 5 月推出的。Java 技术具有卓越的通用性、高效性、平台移植性和安全性。

    2731 引用 • 8007 回帖 • 776 关注

赞助商 我要投放

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • Eddie

    你的除法有可能报错的。。。。

    1 回复
  • 10001

    这是由于当 BigDecimal 使用 divide 方法进行运算除不尽时就会报错,实际项目中可用以下方法,由于我这里不能直接参与运算,需要转类型,可以打印出来看结果,范例:


    	BigDecimal actualStaff = new BigDecimal(humanStatistics.getActualStaff()); 
    	BigDecimal numberStaff = new BigDecimal(humanStatistics.getNumberStaff()); 
    	BigDecimal arrivalRate = actualStaff.divide(numberStaff,2,BigDecimal.ROUND_HALF_UP);
    	System.out.println(arrivalRate);