public static Fiat parseFiatInexact(final String currencyCode, final String str) {
        try {
            long val = new BigDecimal(str).movePointRight(SMALLEST_UNIT_EXPONENT).longValue();
            return Fiat.valueOf(currencyCode, val);
        } catch (ArithmeticException e) {
            throw new IllegalArgumentException(e);
        }
    }
@Test(expected = IllegalArgumentException.class)
    public void testParseFiatInexactInvalidAmount() {
        Fiat.parseFiatInexact("USD", "33.xx");
    }