java.math.BigDecimal相关

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;

/**
 * BigDecimal相关
 */
public class BigDecimalDemo {

    /**
     * 倒数:两个数相乘得一,称这两个数互为倒数
     * 相反数:两个数符号相反 且 相加得零,称这两个数互为相反数
     */
    public static void main(String[] args) {
        //声明一个 BigDecimal 类型的数 -1
        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);
        //判断是否等于0
        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);
    }
}

你可能感兴趣的:(stream流,java)