@Override
    public MonetaryAmount apply(MonetaryAmount amount){
        Objects.requireNonNull(amount, "Amount required.");
        NumberValue num = amount.getNumber();
        BigDecimal one = new BigDecimal("1.0").setScale(num.getScale() < 5 ? 5 : num.getScale(),
                BigDecimal.ROUND_HALF_EVEN);
        return amount.getFactory().setNumber(one.divide(num.numberValue(BigDecimal.class), RoundingMode.HALF_EVEN))
                .create();
    }
@ Override public MonetaryAmount apply ( MonetaryAmount amount ) { Objects . requireNonNull ( amount , "Amount required." ) ; NumberValue num = amount . getNumber ( ) ; BigDecimal one = new BigDecimal ( "1.0" ) . setScale ( num . getScale ( ) < 5 ? 5 : num . getScale ( ) , BigDecimal . ROUND_HALF_EVEN ) ; return amount . getFactory ( ) . setNumber ( one . divide ( num . numberValue ( BigDecimal . class ) , RoundingMode . HALF_EVEN ) ) . create ( ) ; }
Gets the amount as reciprocal / multiplicative inversed value (1/n).

E.g. 'EUR 2.0' will be converted to 'EUR 0.5'.

@return the reciprocal / multiplicative inversed of the amount
@throws ArithmeticException if the arithmetic operation failed