**Question on compareTo()**: As be.arci.math.BigDecimal is a floating point, with rounding too, exact comparison might not be what you need in all cases. Tell me what you think of a method like

`compareWithinMargin(BigDecimal bdComparand, double percents)`,

which could return 0 ('equal value') if`this * (1-percents) < bdComparand < this * (1+percents)`,

else +1 or -1 depending on`this < or > bdComparand`