BigInteger和BigDecimal
- BigInteger适合保存比较大的整型(同时他的也就只能专用的加减乘除来操作,而且也是这个类型)
- BigDecimal适合保存精度更高的浮点型(小数)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| package Learn;
import java.math.BigDecimal; import java.math.BigInteger; import java.util.Arrays;
public class Test { public static void main(String[] args) { BigInteger bigInteger=new BigInteger("654655646565154484846546546548"); BigInteger bigInteger1=new BigInteger("100"); System.out.println(bigInteger); bigInteger1= bigInteger1.add(bigInteger); System.out.println(bigInteger1);
BigDecimal bigDecimal=new BigDecimal("1.256465156165484986465165"); BigDecimal bigDecimal1=new BigDecimal("1.2564651561654849"); System.out.println(bigDecimal); bigDecimal= bigDecimal.add(bigDecimal1); System.out.println(bigDecimal); } }
|
应用
在实际应用中double类型进行相加减,会存在精度的问题,比如
此时我们就需要运行BigDecimal来进行运算
1 2 3 4 5 6 7 8 9
| private Double xj;
public Double getXj() { BigDecimal bigDecimalPrice=new BigDecimal(""+getBook().getPrice()); BigDecimal bigDecimalBuyCount=new BigDecimal(""+getBuyCount()); BigDecimal bigDecimalxj=bigDecimalPrice.multiply(bigDecimalBuyCount); xj=bigDecimalxj.doubleValue(); return xj; }
|