前几天网友在群里有问BigDecimal能直接赋值吗?就像使用基本数据类型那样,答案是不能。
Java中的基本数据类型有的时候是不能满足实际编程需要的,特别是在数学、科学、工程、货币等领域,因为精度不够,所以Java提供了java.math.BinInteger类和java.math.BigDecimal类,其中BigInteger类是针对大整数的处理类,而BigDecimal类则是针对大小数的处理类,它们不属于基本数据类型,所以不能按照普通的基本数据类型那样计算,那么它们是怎样进行数据运算的呢?下面以BigDecimal为例进行说明。
首先查看API文档,API文档中有详细介绍。通过查看文档发现BigDecimal类提供了四类方法进行加、减、乘、除:
public BigDecimal add(BigDecimal augend) ;//加 public BigDecimal subtract(BigDecimal subtrahend) ;//减 public BigDecimal multiply(BigDecimal multiplicand);//乘 public BigDecimal divide(BigDecimal divisor);//除
例如:
BigDecimal money = new BigDecimal("15328.328"); //本金
BigDecimal interestRate = new BigDecimal("0.008"); //利率
BigDecimal sum = money.multiply(interestRate); //总共金额
BigInteger类的操作与BigDecimal类似。