【源码解析】-- BigDecimal源码简要分析以及简单使用

本文介绍了BigDecimal在Java中的重要性,特别是在需要高精度计算的场景下。详细解析了BigDecimal的构造方法,并重点讲解了加法和减法的底层实现,强调了使用String构造方法的优势。同时,提到了BigDecimal的乘法、除法和取余操作的使用。
摘要由CSDN通过智能技术生成

1. 什么是BigDecimal?

在Java中,BigDecimal是一个基础的数据结构,它常常用于需要高精度计算的应用场景,比如表示一个商品的价格、或者是计算商品的购买价格中都经常用到BigDecimal,因为这些数值要求高精度,如果我们使用的是Double、Float等数据类型在一定场景下会导致数值出现一些误差。比如现在有一下代码:

public class BigDecimalAnalyze {
   

    public static void main(String[] args) {
   

        double price1=20.15;
        float price2=40.10F;

        BigDecimal bigDecimal1=new BigDecimal(price1);
        BigDecimal bigDecimal2=new BigDecimal(price2);

		//输出实际值
        System.out.println(bigDecimal1);
        System.out.println(bigDecimal2);
    }

}

//控制台输出
20.14999999999999857891452847979962825775146484375
40.09999847412109375

从以上结果中可以分析出,double、float类型表示的数值比原始值稍微偏小一些,虽然现在感觉差的不是特别多,但是万一到时候订单到达比如100W的时候,所差的金额就特别多了,这在实际项目中肯定是不允许的,如果使用BigDecimal计算就能避免以上问题

2. BigDecimal有哪几种构造方法式?

在这里插入图片描述
通过查看源码可以分析出BigDecimal共有以上17中构造方法,但是如果涉及到金额的计算建议使用String入参进行构造

3. BigDecimal的简单使用

在实际项目中使用的比较多的就是BigDecimal的运算,比如常规的加、减、乘、除、取余等。

3.1 BigDecimal加法运算底层实现方法:
 public BigDecimal add(BigDecimal augend) {
   
        if 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值