初始化使用字符串
浮点型表示小数方式
java使用幂函数的方式表示小数,底层使用前几位0,1,01表示底数,后几位二进制数表示顶数
比如 3 (-1) 3的负一次幂,转为分数为1/3 ,分数转为小数就可能会有精度丢失。
四舍五入保留位有效数字
测试代码
public class TestBigDecimal {
public static void main(String[] args) {
//初始化
BigDecimal b1 = new BigDecimal(0.01f);
BigDecimal b2 = new BigDecimal(0.01d);
BigDecimal b3 = new BigDecimal("0.01");
BigDecimal b4 = new BigDecimal("6");
BigDecimal b5 = new BigDecimal("7");
System.out.println(b1);
System.out.println(b2);
System.out.println(b3);
//比较
int i = b1.compareTo(b2); //1 0 -1
System.out.println(i);
//运算
//加法
BigDecimal add = b1.add(b2);
System.out.println(add);
//减法
BigDecimal subtract = b1.subtract(b2);
System.out.println(subtract);
//乘法
BigDecimal multiply = b4.multiply(b5);
System.out.println("multiply = " + multiply);
//除法,保留3位有效数字,四舍五入
BigDecimal divide = b4.divide(b5,3,BigDecimal.ROUND_HALF_DOWN);
System.out.println(divide);
//约数
BigDecimal add1 = b2.add(b1);
System.out.println(add1);
BigDecimal bigDecimal = add1.setScale(3, BigDecimal.ROUND_HALF_EVEN);
System.out.println(bigDecimal);
}
}