Change rounding code to use BigDecimal with setScale