任意精度整数算法 (BigInteger) 和任意精度小数算法 (BigDecimal)

在使用BigDecimal类来进行计算的时候,主要分为以下步骤:

  1. 用float或者double变量构建BigDecimal对象。
  2. 通过调用BigDecimal的加,减,乘,除等相应的方法进行算术运算。
  3. 把BigDecimal对象转换成float,double,int等类型。

new BigDecimal(...)填写构造函数的时候,要使用String,而不要使用float或者double,否则同样会引起精度丢失

使用BigDecimal的构造方法或者静态方法的valueOf()方法把基本类型的变量构建成BigDecimal对象。

//float和double类型传入到BigDecimal中传入String类型,建议采用下面这种方式:
 BigDecimal b1 = new BigDecimal(Double.toString(0.48));

 BigDecimal b2 = BigDecimal.valueOf(0.48);

加减乘除

public BigDecimal add(BigDecimal value);                        //加法
public BigDecimal subtract(BigDecimal value);                   //减法 
public BigDecimal multiply(BigDecimal value);                   //乘法
public BigDecimal divide(BigDecimal value);                     //除法

将BigDecimal对象转换成相应的基本数据类型的变量,可以使用floatValue(),doubleValue()等方法。

BigInteger和BigDecimal差不多

原文地址:https://www.cnblogs.com/changzuidaerguai/p/7262531.html