- Replaced the code for rounding double values to a given number of fractional digits in order to make it work in other locales than "EN"
diff --git a/utils/src/main/java/org/apache/edgent/samples/utils/sensor/SimpleSimulatedSensor.java b/utils/src/main/java/org/apache/edgent/samples/utils/sensor/SimpleSimulatedSensor.java
index 0e306ca..2c3b598 100644
--- a/utils/src/main/java/org/apache/edgent/samples/utils/sensor/SimpleSimulatedSensor.java
+++ b/utils/src/main/java/org/apache/edgent/samples/utils/sensor/SimpleSimulatedSensor.java
@@ -19,9 +19,9 @@
 
 package org.apache.edgent.samples.utils.sensor;
 
-import java.text.DecimalFormat;
 import java.util.Random;
 
+import org.apache.commons.math3.util.Precision;
 import org.apache.edgent.analytics.sensors.Range;
 import org.apache.edgent.function.Supplier;
 
@@ -52,7 +52,6 @@
 public class SimpleSimulatedSensor implements Supplier<Double> {
     private static final long serialVersionUID = 1L;
     private int numFracDigits;
-    private volatile DecimalFormat df;
     private Random r = new Random();
     private final Range<Double> range;
     private final double deltaFactor;
@@ -126,13 +125,7 @@
     public void setNumberFractionalDigits(int numFracDigits) {
         this.numFracDigits = numFracDigits;
         if (numFracDigits <= 0) {
-            df = null;
-        }
-        else {
-            String fracPattern = "";
-            for (int i = 0; i < numFracDigits; i++)
-                fracPattern += "#";
-            df = new DecimalFormat("#."+fracPattern);
+            this.numFracDigits = 0;
         }
     }
     
@@ -167,9 +160,7 @@
                         ? range.upperEndpoint()
                         : range.lowerEndpoint();
         }
-        if (df != null)
-            nextValue = Double.valueOf(df.format(nextValue));
-        currentValue = nextValue;
+        currentValue = Precision.round(nextValue, numFracDigits);
         return currentValue;
     }
 }