public static MathContext getMathContext(MonetaryContext monetaryContext, RoundingMode defaultMode) {
		MathContext ctx = monetaryContext.get(MathContext.class);
		if (Objects.nonNull(ctx)) {
			return ctx;
		}
		RoundingMode roundingMode = monetaryContext.get(RoundingMode.class);
		if (roundingMode == null) {
			roundingMode = Optional.ofNullable(defaultMode).orElse(HALF_EVEN);
		}
		return new MathContext(monetaryContext.getPrecision(), roundingMode);
	}
public static MathContext getMathContext ( MonetaryContext monetaryContext , RoundingMode defaultMode ) { MathContext ctx = monetaryContext . get ( MathContext . class ) ; if ( Objects . nonNull ( ctx ) ) { return ctx ; } RoundingMode roundingMode = monetaryContext . get ( RoundingMode . class ) ; if ( roundingMode == null ) { roundingMode = Optional . ofNullable ( defaultMode ) . orElse ( HALF_EVEN ) ; } return new MathContext ( monetaryContext . getPrecision ( ) , roundingMode ) ; }
Evaluates the {@link MathContext} from the given {@link MonetaryContext}.

@param monetaryContext the {@link MonetaryContext}
@param defaultMode     the default {@link RoundingMode}, to be used if no one is set
in {@link MonetaryContext}.
@return the corresponding {@link MathContext}