code: @Override
      public Money subtract(MonetaryAmount subtrahend) {
          MoneyUtils.checkAmountParameter(subtrahend, this.currency);
          if (subtrahend.isZero()) {
              return this;
          }
          MathContext mc = MoneyUtils.getMathContext(monetaryContext, RoundingMode.HALF_EVEN);
          return new Money(this.number.subtract(subtrahend.getNumber().numberValue(BigDecimal.class), mc), getCurrency(),
                  monetaryContext);
      }
docs: /*
  (non-Javadoc)
  
  @see javax.money.MonetaryAmount#subtract(javax.money.MonetaryAmount)