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
    public void testParseFiatInexact() {
        assertEquals(1, Fiat.parseFiatInexact("EUR", "0.0001").value);
        assertEquals(1, Fiat.parseFiatInexact("EUR", "0.00011").value);
    }