Bigdecimal精度问题

            最近在开发中遇到构造bigdecimal进行运算时,运算结果和计算器计算的值,算出的差异很大,

贴上代码计算结果

Bigdecimal精度问题

计算结果:

Bigdecimal精度问题

价格 price是 使用 new Bigdecimal(double param);构造的,说明文档:

Bigdecimal精度问题

大致意思,使用new bigdecimal(double) 某些情况下不精确的,而String 为参数的构造函数是精确的

将 price 转为String,在调用new Bigdecimal(String ) ,问题解决

参考:http://bbs.****.net/topics/391839221?page=1