BigDecimal 使用问题记录

261 阅读1分钟

stripTrailingZeros 方法问题

Issue1 对于0无法生效问题

根据官方bug,在低于JDK 1.8 ,无法对于0 进行处理

自测发现在Android 9以及Android 9 以下,使用该方法也会存在这个问题

解决方案: 在Android 9 或者jdk 1.8 以下 使用该方法处理

/**
 * 此方法用于处理BigDecimal#stripTrailingZeros在android 10以下 处理0不生效的问题
 *
 * @return
 */
public BigDecimal lowerAndroidQCompact(BigDecimal bigDecimal) {
    if (bigDecimal.compareTo(BigDecimal.ZERO) == 0) {
        return BigDecimal.ZERO;
    }
    return bigDecimal;
}

Issue2 科学计数法问题

在某些数值下 直接调用bigDecimal 的toString()方法会以现科学计数法展示数字

解决方案:使用 toPlainToString()方法代替toString()