我有一个BigDecimal值,我想知道它的小数位数是否超出边界。
e.g。如果BigDecimal是123.456,那么我的小数点边界是2 这将是一个错误
然而,边界为2的123.450是可以的,因为我认为0对于这个测试来说并不重要。
我对BigDecimal有点不确定它的缩放/非缩放实现。
我已将scale()
视为一种选择,但我认为这可能与我的尾随零的情况有关。
有没有人知道测试的正确方法?
答案 0 :(得分:4)
BigDecimal
有stripTrailingZeros()
。之后scale()
会做你想做的事。
或者你可以使用BigDecimal.setScale(2, RoundingMode.UNNECESSARY)
如果有非零则会抛出异常。对我来说,这在普通情况下看起来有点低效。但是,无论如何你都会抛出异常,这可能是有用的。