code: public static PrecisionContextRoundedOperator of(MathContext mathContext) {
  
  		Objects.requireNonNull(mathContext);
  
  		if(RoundingMode.UNNECESSARY.equals(mathContext.getRoundingMode())) {
  			   throw new IllegalArgumentException("To create the MathContextRoundedOperator you cannot use the RoundingMode.UNNECESSARY on MathContext");
  		}
  
  		if(mathContext.getPrecision() <= 0) {
  				throw new IllegalArgumentException("To create the MathContextRoundedOperator you cannot use the zero precision on MathContext");
  		}
  
  		return new PrecisionContextRoundedOperator(mathContext);
  	}
docs: Creates the rounded Operator from mathContext
  @param mathContext the math context, not null.
  @return the {@link MonetaryOperator} using the {@link MathContext} used in parameter
  @throws NullPointerException when the {@link MathContext} is null
  @throws IllegalArgumentException when the {@link MathContext#getPrecision()} is lesser than zero
  @throws IllegalArgumentException when the mathContext is {@link MathContext#getRoundingMode()} is {@link RoundingMode#UNNECESSARY}
  @see MathContext