Scale() of Divide method in BigDecimal
new BigDecimal("37146555.53880000").divide(new BigDecimal("1000000")).scale() This returns 10 . But according to the API, the divide method: Returns a BigDecimal whose value is (this / divisor), and whose preferred scale is (this.scale() - divisor.scale()); So in this case, 37146555.53880000's scale is 8 , and 1000000 's scale is 0 . So the result should have a scale of 8 , not 10 . What am I missing here? Thanks Andrei Fierbinteanu The actual result is 37.1465555388 whose scale must be 10 for it to be exact. What the JavaDoc says is that the preferred scale is the difference meaning that if