BigDecimal浮点数精确计算类
package com.tiedandan.java常用类.BIGdecimal浮点精确运算;
import java.math.BigDecimal;
public class Application {
public static void main(String[] args) {
//普通double类型进行数据计算会有误差
double a =1.0;
double b =0.9;
System.out.println("double类型计算结果"+(a-b));
BigDecimal a1 = new BigDecimal(1.0);//值不能是数,要是字符串,不然还算不准
BigDecimal b1 = new BigDecimal(0.9);
BigDecimal c1 = a1.subtract(b1);
System.out.println("BigDecimal传值运算结果:"+c1);
BigDecimal a2 = new BigDecimal("1.0");//值不能是数,要是字符串,不然还算不准
BigDecimal b2 = new BigDecimal("0.9");
BigDecimal c2 = a2.subtract(b2);
System.out.println("BigDecimal传字符串运算结果:"+c2);
//加法
BigDecimal c3 =a2.add(b2);
System.out.println("BigDecimal加法运算结果:"+c3);
//乘法
BigDecimal c4 =a2.multiply(b2);
System.out.println("BigDecimal乘法运算结果:"+c4);
//除法
BigDecimal a3 = new BigDecimal("1.8");
BigDecimal b3 = new BigDecimal("0.9");
BigDecimal c5 = a3.divide(b3);
System.out.println("BigDecimal除法运算结果:"+c5);//除法如果除不尽会报错,需要设置保留小数
BigDecimal c6 = a2.divide(b2,3);//保留三位小数
System.out.println("BigDecimal除法保留小数运算结果:"+c6);
}
}