@Test
public void Bigdecimal加减乘除 () {
BigDecimal num1 = new BigDecimal(0.005);
BigDecimal num2 = new BigDecimal(1000000);
BigDecimal num3 = new BigDecimal(-1000000);
//尽量用字符串的形式初始化
BigDecimal a = new BigDecimal("4.5");
BigDecimal b = new BigDecimal("1.5");
BigDecimal c = new BigDecimal("-0.005");
System.out.println("a + b =" + a.add(b));
System.out.println( "a - b =" +a.subtract(b));
System.out.println("a * b =" +a.multiply(b));
System.out.println("a / b =" +a.divide(b));
}
public void test02() {
// BigDecimal num1 = new BigDecimal( "11");
// BigDecimal num2 = new BigDecimal( "3");
BigDecimal num1 = new BigDecimal( 0.03);
BigDecimal num2 = new BigDecimal( 0.26);
System.out.println("ROUND_CELING-------" + num1.divide(num2, 2 , BigDecimal.ROUND_CEILING));
System.out.println("ROUND_DOWN-------" + num1.divide(num2 ,2,BigDecimal.ROUND_DOWN));
System.out.println ("ROUND_FLOOR-------" + num1.divide(num2 , 2,BigDecimal.ROUND_FLOOR));
System.out.println("ROUND_HALF_DOWN----"+num1.divide(num2 , 2,BigDecimal.ROUND_HALF_DOWN));
System.out.println("ROUND_HALF_EVEN-------" + num1.divide(num2, 2, BigDecimal.ROUND_HALF_EVEN));
System.out.println("ROUND_HALF_UP-------" + num1.divide(num2 , 2,BigDecimal.ROUND_HALF_UP));
// System.out.println("ROUuID_UMWEDESSAR---"+ num1.divide(num2,2,BigDecimal.ROUND_UNNECESSARY));//如果我们的结果不是精确的,就会报错
System.out.println("ROUND_UP-------" + num1.divide(num2 , 2,BigDecimal.ROUND_UP));
//乘法 System.out.println("a * b =" +a.multiply(b));
// b1.multiply(b2).setScale(scale, roundingMode)
BigDecimal divide = num1.divide(num2, 2, BigDecimal.ROUND_UP);
System.out.println("num1.multiply(num2)-------" + divide.multiply(new BigDecimal( 100)).setScale(0, BigDecimal.ROUND_HALF_UP));
}
四,BigDecimal的比较
/**
比较两个BigDecimal的方法
1.equals() 并不是不能使用equals方法比较两个BigDecimal只是我们通常使用compareTo
2.compareTo() 通常使用
因此我们通常使用compareTo()方法来比较,它根据两个值的大小分别返回负数、正数和0,分别表示小于、大于和等于。
使用compareTo()比较两个BigDecimal的值,不建议使用equals()!!!!*/
//compareTo正数表示a1>a2, 返回为负数表示a1<a2, 返回为0表示a1==a2
/* BigDecimal diff = new BigDecimal("0.1");
System.out.println(diff.compareTo(new BigDecimal("100")));
if (diff.compareTo(new BigDecimal("100")) == -1) {
System.out.println("diff<result1:" + diff + "___" );
}*/
}