diff --git a/samoa-api/src/main/java/org/apache/samoa/evaluation/F1ClassificationPerformanceEvaluator.java b/samoa-api/src/main/java/org/apache/samoa/evaluation/F1ClassificationPerformanceEvaluator.java
index 726f487..7ad4292 100644
--- a/samoa-api/src/main/java/org/apache/samoa/evaluation/F1ClassificationPerformanceEvaluator.java
+++ b/samoa-api/src/main/java/org/apache/samoa/evaluation/F1ClassificationPerformanceEvaluator.java
@@ -100,7 +100,7 @@
         Measurement[] measurements = new Measurement[this.numClasses];
         for (int i = 0; i < this.numClasses; i++) {
             String ml = String.format("class %s precision", i);
-            measurements[i] = new Measurement(ml, getPrecision(i));
+            measurements[i] = new Measurement(ml, getPrecision(i), 10);
         }
         return measurements;
     }
@@ -109,7 +109,7 @@
         Measurement[] measurements = new Measurement[this.numClasses];
         for (int i = 0; i < this.numClasses; i++) {
             String ml = String.format("class %s recall", i);
-            measurements[i] = new Measurement(ml, getRecall(i));
+            measurements[i] = new Measurement(ml, getRecall(i), 10);
         }
         return measurements;
     }
@@ -118,7 +118,7 @@
         Measurement[] measurements = new Measurement[this.numClasses];
         for (int i = 0; i < this.numClasses; i++) {
             String ml = String.format("class %s f1-score", i);
-            measurements[i] = new Measurement(ml, getF1Score(i));
+            measurements[i] = new Measurement(ml, getF1Score(i), 10);
         }
         return measurements;
     }
diff --git a/samoa-api/src/main/java/org/apache/samoa/moa/core/Measurement.java b/samoa-api/src/main/java/org/apache/samoa/moa/core/Measurement.java
index 8fc80c7..8a3d598 100644
--- a/samoa-api/src/main/java/org/apache/samoa/moa/core/Measurement.java
+++ b/samoa-api/src/main/java/org/apache/samoa/moa/core/Measurement.java
@@ -36,14 +36,19 @@
   private static final long serialVersionUID = 1L;
 
   protected String name;
-
   protected double value;
+  protected int fractionDigits;
 
   public Measurement(String name, double value) {
     this.name = name;
     this.value = value;
   }
 
+  public Measurement(String name, double value, int fractionDigits) {
+    this(name, value);
+    this.fractionDigits = fractionDigits;
+  }
+
   public String getName() {
     return this.name;
   }
@@ -110,6 +115,6 @@
   public void getDescription(StringBuilder sb, int indent) {
     sb.append(getName());
     sb.append(" = ");
-    sb.append(StringUtils.doubleToString(getValue(), 3));
+    sb.append(StringUtils.doubleToString(getValue(), this.fractionDigits));
   }
 }
