其实java的float只能用来进行科学计算或工程计算,在大多数的商业计算中,一般采用java.math.BigDecimal类来进行精确计算。
在使用BigDecimal类来进行计算的时候,主要分为以下步骤:
1、用float或者double变量构建BigDecimal对象。
2、通过调用BigDecimal的加,减,乘,除等相应的方法进行算术运算。
3、把BigDecimal对象转换成float,double,int等类型。
一般来说,可以使用BigDecimal的构造方法或者静态方法的valueOf()方法把基本类型的变量构建成BigDecimal对象。
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); //除法
通过这些方法进行结果的计算,最后进行精度确定
new BigDecimal("1225.125").setScale(2, RoundingMode.HALF_UP) new BigDecimal("1225.121").setScale(2,BigDecimal.ROUND_HALF_UP)
.setScale后面一定要带上进度算法,要不然会因为精度丢失问题,出现内部错误