文章目录[隐藏]
- 1 初始化
- 2 加减乘除
- 3 比较
- 4 RoundingMode
1 初始化
代码语言:javascript复制//数值的形式初始化
BigDecimal num1 = new BigDecimal(123.213);
//尽量用字符串的形式初始化
BigDecimal num2 = new BigDecimal("0.005");
2 加减乘除
代码语言:javascript复制//加法
BigDecimal result1 = num1.add(num1);
BigDecimal result2 = num12.add(num2);
//减法
BigDecimal result3 = num1.subtract(num1);
BigDecimal result4 = num12.subtract(num2);
//乘法
BigDecimal result5 = num1.multiply(num1);
BigDecimal result6 = num12.multiply(num2);
//绝对值
BigDecimal result7 = num1.abs();
BigDecimal result8 = num2.abs();
//除法
BigDecimal result9 = num1.divide(num1,20,BigDecimal.ROUND_HALF_UP); BigDecimal result10 = num2.divide(num2,20,BigDecimal.ROUND_HALF_UP);
(BigDecimal divisor 除数, int scale 精确小数位,int roundingMode 舍入模式)
3 比较
代码语言:javascript复制BigDecimal a = new BigDecimal (101);
BigDecimal b = new BigDecimal (111);
//使用compareTo方法比较
//注意:a、b均不能为null,否则会报空指针
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");·
4 RoundingMode
代码语言:javascript复制RoundingMode.CEILING:取右边最近的整数
RoundingMode.DOWN:去掉小数部分取整,也就是正数取左边,负数取右边,相当于向原点靠近的方向取整
RoundingMode.FLOOR:取左边最近的正数
RoundingMode.HALF_DOWN:五舍六入,负数先取绝对值再五舍六入再负数
RoundingMode.HALF_UP:四舍五入,负数原理同上
RoundingMode.HALF_EVEN:这个比较绕,整数位若是奇数则四舍五入,若是偶数则五舍六入