From 59a1577782e2286b03e83a1254020195e5954dca Mon Sep 17 00:00:00 2001 From: hneemann Date: Sat, 13 Feb 2021 21:49:25 +0100 Subject: [PATCH] fixes a float formating bug; closes #647 --- src/main/java/de/neemann/digital/core/IntFormat.java | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/main/java/de/neemann/digital/core/IntFormat.java b/src/main/java/de/neemann/digital/core/IntFormat.java index c1c33e87a..b12984c2f 100644 --- a/src/main/java/de/neemann/digital/core/IntFormat.java +++ b/src/main/java/de/neemann/digital/core/IntFormat.java @@ -499,9 +499,17 @@ public enum IntFormat { switch (inValue.getBits()) { case 32: - return Float.toString(Float.intBitsToFloat((int) inValue.getValue())); + float f = Float.intBitsToFloat((int) inValue.getValue()); + if (Float.isFinite(f)) + return Float.toString(f); + else + return HEX_FORMATTER.formatToEdit(inValue); case 64: - return Double.longBitsToDouble(inValue.getValue()) + "d"; + double d = Double.longBitsToDouble(inValue.getValue()); + if (Double.isFinite(d)) + return d + "d"; + else + return HEX_FORMATTER.formatToEdit(inValue); default: return HEX_FORMATTER.formatToEdit(inValue); }