code: private static final void setBigDecimalFormat(NumberFormat format, Class numberClass) {
  		if (format instanceof DecimalFormat && ((numberClass == BigDecimal.class) || (numberClass == BigInteger.class))) {
  			((DecimalFormat) format).setParseBigDecimal(true);
  		}
  	}
docs: When parsing a number, BigDecimalFormat can return numbers different than
  BigDecimal. This method will ensure that when using a {@link BigDecimal}
  or a {@link java.math.BigInteger}, the formatter will return a {@link BigDecimal}
  in order to prevent loss of precision. Note that you should use the
  {@link DecimalFormat} to make this work.
  
  @param format
  @param numberClass
  
  @see #getValue()
  @see DecimalFormat#setParseBigDecimal(boolean)