1、初始化
BigDecimal num = new BigDecimal(0.05);
BigDecimal num1 = new BigDecimal("0.05");
BigDecimal num2 = new BigDecimal("0.05");
BigDecimal add = new BigDecimal("");
Exception in thread "main" java.lang.NumberFormatException
at java.math.BigDecimal.<init>(BigDecimal.java:596)
2、加减乘除
BigDecimal result1 = num1.add(num2);
BigDecimal result2 = num1.subtract(num2);
BigDecimal result3 = num1.multiply(num2);
BigDecimal result4 = num1.divide(num2, 6, BigDecimal.ROUND_HALF_UP);
BigDecimal result5 = num1.abs();
System.out.println(num);
System.out.println(num1);
System.out.println(num2);
System.out.println(result1);
System.out.println(result2);
System.out.println(result3);
System.out.println(result4);
System.out.println(result5);
0.05000000000000000277555756156289135105907917022705078125
0.05
0.05
这里可以看出初始化的时候,选用String类型最好
0.10
0.00
0.0025
1.000000
0.05
divide()方法
public BigDecimal divide(BigDecimal divisor, int scale, int roundingMode)
(除数,小数点后位数,舍入方式)
roundingMode 舍入方式通常有以下几种
1、ROUND_UP
始终对非零舍弃部分前面的数字加1
2、ROUND_DOWN
从不对舍弃部分前面的数字加1,即截短
3、ROUND_CEILING
如果 BigDecimal 为正,则舍入行为与 ROUND_UP 相同;
如果为负,则舍入行为与 ROUND_DOWN 相同。
4、ROUND_FLOOR
如果 BigDecimal 为正,则舍入行为与 ROUND_DOWN 相同;
如果为负,则舍入行为与 ROUND_UP 相同。
5、ROUND_HALF_UP
四舍五入
6、ROUND_HALF_DOWN
五舍六入
7、ROUND_HALF_EVEN
如果舍弃部分左边的数字为奇数,则舍入行为与 ROUND_HALF_UP 相同;
如果为偶数,则舍入行为与 ROUND_HALF_DOWN 相同。
8、ROUND_UNNECESSARY
断言请求的操作具有精确的结果,因此不需要舍入。
3、大于小于
if(a.compareTo(b) == -1){
System.out.println("a小于b");
}
if(a.compareTo(b) == 0){
System.out.println("a等于b");
}
if(a.compareTo(b) == 1){
System.out.println("a大于b");
}
if(a.compareTo(b) > -1){
System.out.println("a大于等于b");
}
if(a.compareTo(b) < 1){
System.out.println("a小于等于b");
}