Converts a string to a number using the narrowest possible type. Possible returns for this function are BigDecimal, Double, BigInteger, Long, and Integer. When a Double is returned, it should always be a valid Double and not NaN or +-infinity. @param val value to convert @return Number representati
(final String val)