问题:下图
原因:
刚开始除法是这样写的。 因为没有直接进行整除,指定最终结果的精度,所以发生了上述问题。
解决方法:
实际上,devide的函数定义如下
33558 www.Sina.com/. divide (bigdecimal divisor,intscale,RoundingModeroundingMode );
scale是小数位数
运行模式为小数模式
http://www.Sina.com/bigdecimal为正时,进行ROUND_UP操作; 负的情况下,进行ROUND_DOWN操作。BigDecimal
不会在要截断的小数之前增加数字。ROUND_CEILING
如果BigDecimal为正,则为ROUND_UP; 负的情况下,设为ROUND_DOWN。ROUND_DOWN
如果舍弃部分. 5,则返回ROUND_UP; 否则,设为ROUND_DOWN。ROUND_FLOOR
舍弃部分左侧的数字为奇数时,返回ROUND_HALF_UP; 偶数的情况下,设为ROUND_HALF_DOWN。ROUND_HALF_DOWN
如果要舍弃部分=.5,则返回ROUND_UP; 否则,设为ROUND_DOWN。ROUND_HALF_EVEN此“伪舍入模式”实际上不需要舍入操作,因为它表明所请求的操作必须准确。ROUND_HALF_UP
总是舍弃非零小数,即在舍去之前增加数字。
因此,上述代码包含releaseamountbigdecimal=releaseamountbigdecimal.divide (projectscalamount,4,bigdecimal.round _ half