diff --git a/core/src/main/java/org/bitcoinj/utils/Fiat.java b/core/src/main/java/org/bitcoinj/utils/Fiat.java index bcb95988..f390c026 100644 --- a/core/src/main/java/org/bitcoinj/utils/Fiat.java +++ b/core/src/main/java/org/bitcoinj/utils/Fiat.java @@ -81,8 +81,13 @@ public final class Fiat implements Monetary, Comparable, Serializable { * if you try to specify fractional satoshis, or a value out of range. */ public static Fiat parseFiat(final String currencyCode, final String str) { - return Fiat.valueOf(currencyCode, new BigDecimal(str).movePointRight(SMALLEST_UNIT_EXPONENT) - .toBigIntegerExact().longValue()); + try { + long val = new BigDecimal(str).movePointRight(SMALLEST_UNIT_EXPONENT) + .toBigIntegerExact().longValue(); + return Fiat.valueOf(currencyCode, val); + } catch (ArithmeticException e) { + throw new IllegalArgumentException(e); + } } public Fiat add(final Fiat value) {