BigDecimal num1 = new BigDecimal("3.1415926");
BigDecimal num2 = new BigDecimal("2");
1、四则运算
1.1、加法
官方资料:
例子:
//1、加法 num1 + num2
// add(BigDecimal augend)
System.out.println(num1.add(num2));
1.2、减法
官方资料:
例子:
//2、减法 num1 - num2
// subtract(BigDecimal subtrahend)
System.out.println(num1.subtract(num2));
1.3、乘法
官方资料:
例子:
//3、乘法 num1 * num2
// multiply(BigDecimal multiplicand)
System.out.println(num1.multiply(num2));
1.4、除法
官方资料:
例子:
//4、除法 num1 / num2
//divide(BigDecimal divisor)
System.out.println(num1.divide(num2));
2、小数位数
官方资料:
例子:num1,num2分别保留3位小数
System.out.println(num2.setScale(3));
System.out.println(num1.setScale(3, RoundingMode.HALF_UP));
解释:
如果BigDecimal类型的数据是包含小数的,请使用带RoundingMode的,直接用setScale(int newScale)这个会报错,不包含小数点的都可以使用
3、关于
RoundingMode,有以下几种:
例子:
输入值 | UP | DOWN | CEILING | FLOOR | HALF_UP | HALF_DOWN | HALF_EVEN | UNNECESSARY |
5.5 | 6 | 5 | 6 | 5 | 6 | 5 | 6 | throw ArithmeticException |
2.5 | 3 | 2 | 3 | 2 | 3 | 2 | 2 | throw ArithmeticException |
1.6 | 2 | 1 | 2 | 1 | 2 | 2 | 2 | throw ArithmeticException |
1.1 | 2 | 1 | 2 | 1 | 1 | 1 | 1 | throw ArithmeticException |
1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
-1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 | -1 |
-1.1 | -2 | -1 | -1 | -2 | -1 | -1 | -1 | throw ArithmeticException |
-1.6 | -2 | -1 | -1 | -2 | -2 | -2 | -2 | throw ArithmeticException |
-2.5 | -3 | -2 | -2 | -3 | -3 | -2 | -2 | throw ArithmeticException |
-5.5 | -6 | -5 | -5 | -6 | -6 | -5 | -6 | throw ArithmeticException |