import java.math.BigDecimal;
public class Test {
//浮点型回丢失精度
@org.junit.Test
public void test(){
// 0.060000000000000005
System.out.println(0.05+0.01);
// 0.5800000000000001
System.out.println(1.0-0.42);
// 401.49999999999994
System.out.println(4.015*100);
// 1.2329999999999999
System.out.println(123.3/100);
}
@org.junit.Test
public void test2(){
BigDecimal b1 = new BigDecimal(0.05);
BigDecimal b2 = new BigDecimal(0.01);
// 0.06000000000000000298372437868010820238851010799407958984375
System.out.println(b1.add(b2));
}
// 选择BigDecimal String类型
@org.junit.Test
public void test3(){
BigDecimal b1 = new BigDecimal("0.05");
BigDecimal b2 = new BigDecimal("0.01");
// 0.06 加法
System.out.println(b1.add(b2));
// 0.0005 乘法
System.out.println(b1.multiply(b2));
// 0.04 减法
System.out.println(b1.subtract(b2));
// 5.00 四舍五入 保留2位小数
System.out.println(b1.divide(b2,2,BigDecimal.ROUND_HALF_UP));
}
}