code: @Override
      public Geldbetrag add(MonetaryAmount other) {
          if (betrag.compareTo(BigDecimal.ZERO) == 0) {
              return Geldbetrag.valueOf(other);
          }
          BigDecimal n = toBigDecimal(other.getNumber(), context);
          if (n.compareTo(BigDecimal.ZERO) == 0) {
              return this;
          }
          checkCurrency(other);
          return Geldbetrag.valueOf(betrag.add(n), currency);
      }
docs: Liefert die Summe mit dem anderen Gelbetrag zurueck. Vorausgesetzt,
  beide Betraege haben die gleichen Waehrungen. Einzige Ausnahem davon
  ist die Addition von 0, da hier die Waehrung egal ist (neutrale
  Operation).
  
  @param other value to be added to this {@code MonetaryAmount}.
  @return {@code this + amount}
  @throws ArithmeticException if the result exceeds the numeric capabilities of this implementation class, i.e.
  the {@link MonetaryContext} cannot be adapted as required.