在需要进行精确的浮点数计算时使用,通常用于金额计算。

当初始化一个 BigDecimal 时,不要使用 Double 入参的构造方法,会存在精度丢失问题:

BigDecimal bd = new BigDecimal(4.015);

为解决这个问题,可以考虑将 Double 先转换为 String,再进行传入:

BigDecimal bd = new BigDecimal(String.valueOf(4.015));

或者使用BigDecimal.valueOf()方法:

BigDecimal bd = BigDecimal.valueOf(4.015);