看啥推荐读物
专栏名称: ImportNew
伯乐在线旗下账号,专注Java技术分享,包括Java基础技术、进阶技能、架构设计和Java技术领域动态等。
今天看啥  ›  专栏  ›  ImportNew

BigDecimal 为什么可以保证精度不丢失?

ImportNew  · 公众号  · Java  · 2024-05-12 08:32
在金融领域,为了保证数据的精度,往往会使用BigDecimal。本文就来探讨下为什么BigDecimal可以保证精度不丢失。类介绍首先来看一下BigDecimal的类声明以及几个属性:public class BigDecimal extends Number implements Comparable {    // 该BigDecimal的未缩放值    private final BigInteger intVal;    // 精度,可以理解成小数点后的位数    private final int scale;    // BigDecimal中的十进制位数,如果位数未知,则为0(备用信息)    private transient int precision;    // Used to store the canonical string representation, if computed.    // 这个我理解就是存实际的BigDecimal值    private transient String stringCache;    // 扩大成long型数值后的值    private final transient long intCompact;}从例子入手通过debug来发现源码中的奥秘是了解类运行机制很好的方式。请看下面的testBigDecimal ………………………………

原文地址:访问原文地址
快照地址: 访问文章快照