java.math.BigDecimal相关
package cn.包名.路径.demo;
import cn.hutool.core.util.NumberUtil;
import cn.hutool.core.util.ObjectUtil;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.ArrayList;
import java.util.List;
public class BigDecimalDemo {
public static void main(String[] args) {
BigDecimal one = new BigDecimal(-1);
BigDecimal oppositeOne = one.negate();
if (oppositeOne.compareTo(BigDecimal.ZERO) != 0){
System.out.println(one + " 转换的相反数等于 " + oppositeOne);
}
BigDecimal b = new BigDecimal(1);
if(b.compareTo(BigDecimal.ZERO) == 0){
System.out.println(b + "等于" + 0);
}else {
System.out.println(b + "不等于" + 0);
}
BigDecimal decimal = new BigDecimal("3.141592");
if (ObjectUtil.isNotNull(decimal)
&& decimal.compareTo(BigDecimal.ZERO) != 0
&& !decimal.equals(BigDecimal.ZERO)){
BigDecimal bigDecimal = decimal.setScale(2, RoundingMode.HALF_UP);
System.out.println(decimal + " 保留 两位小数(四舍五入)等于" + bigDecimal);
}
List<BigDecimal> list = new ArrayList<>();
list.add(new BigDecimal("1"));
list.add(new BigDecimal("2"));
list.add(new BigDecimal("3"));
list.add(new BigDecimal("4"));
BigDecimal reduce = list.stream()
.reduce(BigDecimal.ZERO, BigDecimal::add);
System.out.println("list里的元素 求和 等于 "+reduce);
BigDecimal num5 = new BigDecimal("5");
BigDecimal num3 = new BigDecimal("3");
BigDecimal num = num5.add(num3);
BigDecimal num8 = NumberUtil.add(num5, num3);
System.out.println("加法:" + num5 + " + " + num3 + " = " + num8 + " = " + num);
BigDecimal num7 = new BigDecimal("7");
BigDecimal num4 = new BigDecimal("4");
num = num7.subtract(num4);
num3 = NumberUtil.sub(num7, num4);
System.out.println("减法:" + num7 + " - " + num4+ " = " + num3 + " = " + num);
BigDecimal num6 = new BigDecimal("6");
BigDecimal num9 = new BigDecimal("9");
num = num6.multiply(num9);
BigDecimal num54 = NumberUtil.mul(num6, num9);
System.out.println("乘法:" + num6 + " × " + num9 + " = " + num54 + " = " + num);
BigDecimal num10 = new BigDecimal("10");
BigDecimal num2 = new BigDecimal("2");
num = num10.divide(num2, 2, RoundingMode.HALF_UP);
num5 = NumberUtil.div(num10, num2, 2, RoundingMode.HALF_UP);
System.out.println("除法:" + num10 + " ÷ " + num2 + " = " + num5 + " = " + num);
}
}