code: public BigMoney minusRetainScale(BigMoneyProvider moneyToSubtract, RoundingMode roundingMode) {
          BigMoney toSubtract = checkCurrencyEqual(moneyToSubtract);
          return minusRetainScale(toSubtract.getAmount(), roundingMode);
      }
docs: Returns a copy of this monetary value with the amount in the same currency subtracted
  retaining the scale by rounding the result.
  <p>
  The scale of the result will be the same as the scale of this instance.
  For example,'USD 25.95' minus 'USD 3.029' gives 'USD 22.92 with most rounding modes.
  <p>
  This instance is immutable and unaffected by this method.
  
  @param moneyToSubtract  the monetary value to add, not null
  @param roundingMode  the rounding mode to use to adjust the scale, not null
  @return the new instance with the input amount subtracted, never null