From 40fe91c7b1d338ed0518d50c9a8860c95e1abfb4 Mon Sep 17 00:00:00 2001
From: Tim Molter <tim.molter@gmail.com>
Date: Mon, 14 Jan 2013 20:49:46 +0100
Subject: [PATCH] fixed zero formatting bug

---
 .../xchart/internal/misc/AxisValueFormatterUtil.java      | 2 +-
 .../src/test/java/com/xeiam/xchart/ValueFormatTest.java   | 8 ++++++++
 2 files changed, 9 insertions(+), 1 deletion(-)

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 554adf9f..e87d18ad 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 b1919546..27d35c44 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
-- 
GitLab