基础面试题:Java运算如何确保精度(BigDecimal)

package com.woniuxy.test;

import org.junit.Test;

import java.math.BigDecimal;

/**
 * @description:
 * @author: llq
 * @time: 2021/6/5 10:25
 */
public class Test4 {
    //1、求平均值:
    @Test
    public void abs() {
        BigDecimal b1 = new BigDecimal("-13.14");
        BigDecimal b2 = b1.abs();
        System.out.println(b2 + "求平均值");

    }

    //2、加法运算
    @Test
    public void add() {
        BigDecimal b1 = new BigDecimal("13.14");
        BigDecimal b2 = new BigDecimal("5.20");
        //通过调用BigDecimal中的add方法,参数必须为BigDecimal类型的方法
        BigDecimal b3 = b1.add(b2);
        System.out.println("加法运算:" + b3);
    }

    //    3、减法运算
    @Test
    public void subtract() {
        BigDecimal b1 = new BigDecimal("13.14");
        BigDecimal b2 = new BigDecimal("5.20");
//通过调用BigDecimal中的subtract方法,参数必须为BigDecimal类型的方法
        BigDecimal b3 = b1.subtract(b2);
        System.out.println("减法的运算:" + b3);
    }

    @Test
    //4、乘法运算
    public void multiply() {
        BigDecimal b1 = new BigDecimal("13.14");
        BigDecimal b2 = new BigDecimal("5.20");
//通过调用BigDecimal中的multiply方法,参数必须为BigDecimal类型的方法
        BigDecimal b3 = b1.multiply(b2);
        System.out.println("乘法的运算:" + b3);
    }

    @Test
    //    5、除法运算
    public void divide() {
        BigDecimal b1 = new BigDecimal("13.14");
        BigDecimal b2 = new BigDecimal("5.20");
//通过调用BigDecimal中的divide方法,参数必须为BigDecimal类型的方法
        BigDecimal b3 = b1.divide(b2);
        System.out.println("除法运算:" + b3);
    }

    @Test
    //    6、比较
    public void compareTo() {
        BigDecimal b1 = new BigDecimal("13.14");
        BigDecimal b2 = new BigDecimal("5.20");
//通过调用BigDecimal中的divide方法,参数必须为BigDecimal类型的方法
        int b3 = b1.compareTo(b2);
//b1>b2 返回-1
//b1<b2 返回1
//b1==b2 返回0
        System.out.println("比较" + b3);
    }
}

总结:

** BigDecimal类中的方法只能通过方法来进行运算和比较,
不可以通过运算符进行运算和比较,所以在对精准度高的领域使用该方法可能造成消耗内存换取精准度的结果**

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员小小刘

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值