diff --git a/xchart/src/main/java/com/xeiam/xchart/internal/misc/AxisValueFormatterUtil.java b/xchart/src/main/java/com/xeiam/xchart/internal/misc/AxisValueFormatterUtil.java index 554adf9fade8cefea3b3b48867b69e8eb5522f42..e87d18ad1298ffcae5786902b3c9efa53565ef47 100644 --- a/xchart/src/main/java/com/xeiam/xchart/internal/misc/AxisValueFormatterUtil.java +++ b/xchart/src/main/java/com/xeiam/xchart/internal/misc/AxisValueFormatterUtil.java @@ -70,7 +70,7 @@ public class AxisValueFormatterUtil { BigDecimal absoluteValue = value.abs(); - if (absoluteValue.compareTo(new BigDecimal("10000")) == -1 && absoluteValue.compareTo(new BigDecimal(".0001")) == 1 || absoluteValue.equals(new BigDecimal("0.0"))) { + if (absoluteValue.compareTo(new BigDecimal("10000")) == -1 && absoluteValue.compareTo(new BigDecimal(".0001")) == 1 || BigDecimal.ZERO.compareTo(value) == 0) { DecimalFormat normalFormat = (DecimalFormat) numberFormat; normalFormat.applyPattern(normalDecimalPatternOverride == null ? NORMAL_DECIMAL_PATTERN : normalDecimalPatternOverride); diff --git a/xchart/src/test/java/com/xeiam/xchart/ValueFormatTest.java b/xchart/src/test/java/com/xeiam/xchart/ValueFormatTest.java index b19195468a48fe11c5c3cb1950301568080bfe69..27d35c44cbe706f33847abf9abc8922bc7fea83e 100644 --- a/xchart/src/test/java/com/xeiam/xchart/ValueFormatTest.java +++ b/xchart/src/test/java/com/xeiam/xchart/ValueFormatTest.java @@ -78,6 +78,14 @@ public class ValueFormatTest { stringValue = AxisValueFormatterUtil.formatNumber(value, null, null, locale); assertThat(stringValue, equalTo("1E-4")); + value = new BigDecimal("0.0"); + stringValue = AxisValueFormatterUtil.formatNumber(value, null, null, locale); + assertThat(stringValue, equalTo("0")); + + value = new BigDecimal("0"); + stringValue = AxisValueFormatterUtil.formatNumber(value, null, null, locale); + assertThat(stringValue, equalTo("0")); + // other case // TODO handle these cases better