到目前为止,笔者在开发过程中几次遇到了BigDeciaml的问题,这里整理到一起。
1、使用Hessian的时候,BigDecimal无法序列化的问题
解决办法:更换hessian的版本到4.0.60
compile 'com.caucho:hessian:4.0.60'
2、BigDecimal与0相比较的问题
原因及解决办法:BigDecimal的值大小比较时,实际上是包含了精度在内的比较,通常的使用
aaa == BigDecimal.ZERO
经常是得不到正确的结果的,因为默认的BigDecimal.ZERO是一个不含小数位数的BigDecimal类型的0
所以这里我们用了compareTo的方法来避免这个问题
if (transModels.originalDepositAmount.compareTo(BigDecimal.ZERO) != 0)