diff --git a/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/NumberFormatter.java b/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/NumberFormatter.java
index 2dce083fcb65460229ffd8987876a0c8deb67069..41782c2664b0b4290dba8d4689fcf010213913c1 100644
--- a/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/NumberFormatter.java
+++ b/xchart/src/main/java/com/xeiam/xchart/internal/chartpart/NumberFormatter.java
@@ -165,7 +165,12 @@ public class NumberFormatter {
       decimalPattern = styleManager.getDecimalPattern();
     }
     else {
-      decimalPattern = "0E0";
+      if (Math.abs(value) > 1000.0 || Math.abs(value) < 0.001) {
+        decimalPattern = "0E0";
+      }
+      else {
+        decimalPattern = "0.###";
+      }
     }
 
     DecimalFormat normalFormat = (DecimalFormat) numberFormat;