diff --git a/src/main/java/org/apache/commons/lang3/math/NumberUtils.java b/src/main/java/org/apache/commons/lang3/math/NumberUtils.java index 7327fac06b3..293139b4494 100644 --- a/src/main/java/org/apache/commons/lang3/math/NumberUtils.java +++ b/src/main/java/org/apache/commons/lang3/math/NumberUtils.java @@ -494,7 +494,8 @@ public static Number createNumber(final String str) { try { final Float f = createFloat(str); final Double d = createDouble(str); - if (!f.isInfinite() && !(f.floatValue() == 0.0F && !isZero(mant, dec)) && f.toString().equals(d.toString())) { + if (!f.isInfinite() && !(f.floatValue() == 0.0F && !isZero(mant, dec)) + && ((double) d.floatValue() == d.doubleValue() || f.toString().equals(d.toString()))) { return f; } if (!d.isInfinite() && !(d.doubleValue() == 0.0D && !isZero(mant, dec))) {