- 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;
}
}