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