code: public BigMoney convertRetainScale(CurrencyUnit currency, BigDecimal conversionMultipler, RoundingMode roundingMode) {
          return convertedTo(currency, conversionMultipler).withScale(getScale(), roundingMode);
      }
docs: Returns a copy of this monetary value converted into another currency
  using the specified conversion rate, with a rounding mode used to adjust
  the decimal places in the result.
  <p>
  The result will have the same scale as this instance even though it will
  be in a different currency.
  <p>
  This instance is immutable and unaffected by this method.
  
  @param currency  the new currency, not null
  @param conversionMultipler  the conversion factor between the currencies, not null
  @param roundingMode  the rounding mode to use to bring the decimal places back in line, not null
  @return the new multiplied instance, never null
  @throws IllegalArgumentException if the currency is the same as this currency and the
  conversion is not one; or if the conversion multiplier is negative
  @throws ArithmeticException if the rounding fails