BigDecimal - 材料小数位

时间:2011-10-03 16:51:09

标签: java bigdecimal

我有一个BigDecimal值,我想知道它的小数位数是否超出边界。

  

e.g。如果BigDecimal是123.456,那么我的小数点边界是2   这将是一个错误

     

然而,边界为2的123.450是可以的,因为我认为0对于这个测试来说并不重要。

我对BigDecimal有点不确定它的缩放/非缩放实现。

我已将scale()视为一种选择,但我认为这可能与我的尾随零的情况有关。

有没有人知道测试的正确方法?

1 个答案:

答案 0 :(得分:4)

BigDecimalstripTrailingZeros()。之后scale()会做你想做的事。

或者你可以使用BigDecimal.setScale(2, RoundingMode.UNNECESSARY)如果有非零则会抛出异常。对我来说,这在普通情况下看起来有点低效。但是,无论如何你都会抛出异常,这可能是有用的。