**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.