Note on
setScale(): Moving around the decimal point is a quite natural
operation in decimal arithmetic, but quite a challenge for java.math.BigDecimal,
which expresses it's value in the binary coded java.math.BigInteger. To
demonstrate this, we choose to setScale() each tested value to half it's current
scale if > 0, else to 3 (i.e. divide by 1000), with ROUND_HALF_UP.