code: public Money rounded(int scale, RoundingMode roundingMode) {
          return with(money.rounded(scale, roundingMode));
      }
docs: Returns a copy of this monetary value rounded to the specified scale without
  changing the current scale.
  <p>
  Scale has the same meaning as in {@link BigDecimal}.
  A scale of 2 means round to 2 decimal places.
  <ul>
  <li>Rounding 'EUR 45.23' to a scale of -1 returns 40.00 or 50.00 depending on the rounding mode.
  <li>Rounding 'EUR 45.23' to a scale of 0 returns 45.00 or 46.00 depending on the rounding mode.
  <li>Rounding 'EUR 45.23' to a scale of 1 returns 45.20 or 45.30 depending on the rounding mode.
  <li>Rounding 'EUR 45.23' to a scale of 2 has no effect (it already has that scale).
  <li>Rounding 'EUR 45.23' to a scale of 3 has no effect (the scale is not increased).
  </ul>
  <p>
  This instance is immutable and unaffected by this method.
  
  @param scale  the new scale
  @param roundingMode  the rounding mode to use, not null
  @return the new instance with the amount converted to be positive, never null
  @throws ArithmeticException if the rounding fails