[Minor] round to 8 decimals in FloatParameter and FloatValue
This commit is contained in:
parent
4de72bfe8b
commit
00e41fdc4a
|
@ -1,12 +1,12 @@
|
|||
/*
|
||||
* Copyright 2013 Robert von Burg <eitch@eitchnet.ch>
|
||||
*
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
|
@ -18,10 +18,10 @@ package li.strolch.model.parameter;
|
|||
import li.strolch.model.StrolchValueType;
|
||||
import li.strolch.model.visitor.ParameterVisitor;
|
||||
import li.strolch.utils.dbc.DBC;
|
||||
import li.strolch.utils.helper.MathHelper;
|
||||
|
||||
/**
|
||||
* @author Robert von Burg <eitch@eitchnet.ch>
|
||||
*
|
||||
*/
|
||||
public class FloatParameter extends AbstractParameter<Double> {
|
||||
|
||||
|
@ -63,12 +63,12 @@ public class FloatParameter extends AbstractParameter<Double> {
|
|||
@Override
|
||||
public void setValue(Double value) {
|
||||
validateValue(value);
|
||||
this.value = value;
|
||||
this.value = MathHelper.toPrecision(value, 8);
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the value to 0
|
||||
*
|
||||
*
|
||||
* @see Parameter#clear()
|
||||
*/
|
||||
@Override
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
/*
|
||||
* Copyright 2013 Martin Smock <smock.martin@gmail.com>
|
||||
*
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
|
@ -20,6 +20,7 @@ import java.io.Serializable;
|
|||
import li.strolch.model.StrolchValueType;
|
||||
import li.strolch.model.timevalue.ITimeValue;
|
||||
import li.strolch.model.timevalue.IValue;
|
||||
import li.strolch.utils.helper.MathHelper;
|
||||
|
||||
/**
|
||||
* {@link IValue} implementation to work with Double valued {@link ITimeValue} objects
|
||||
|
@ -61,7 +62,7 @@ public class FloatValue implements IValue<Double>, Serializable {
|
|||
|
||||
@Override
|
||||
public FloatValue add(Double o) {
|
||||
this.value += o;
|
||||
this.value = MathHelper.toPrecision(this.value + o, 8);
|
||||
return this;
|
||||
}
|
||||
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
/*
|
||||
* Copyright 2013 Martin Smock <smock.martin@gmail.com>
|
||||
*
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
|
@ -20,7 +20,7 @@ import java.math.RoundingMode;
|
|||
|
||||
/**
|
||||
* A helper class that contains mathematical computations that can be used throughout.
|
||||
*
|
||||
*
|
||||
* @author Martin Smock <smock.martin@gmail.com>
|
||||
* @author Michael Gatto <michael@gatto.ch>
|
||||
*/
|
||||
|
@ -31,15 +31,15 @@ public class MathHelper {
|
|||
|
||||
/**
|
||||
* Check if the two values are equal with respect to the precision
|
||||
*
|
||||
*
|
||||
* @param firstValue
|
||||
* the first value to compare
|
||||
* the first value to compare
|
||||
* @param secondValue
|
||||
* the second value to compare to
|
||||
* the second value to compare to
|
||||
*
|
||||
* @return boolean True, if the two values are equal under the set precision. Fales, otherwise.
|
||||
*/
|
||||
public static boolean isEqualPrecision(double firstValue, double secondValue) {
|
||||
|
||||
return (java.lang.Math.abs(firstValue - secondValue) < (1.0d / PRECISION));
|
||||
}
|
||||
|
||||
|
@ -49,17 +49,16 @@ public class MathHelper {
|
|||
* <p>
|
||||
* Note: this implementation tests if the value < bound, and if this is not so, checks if the values are equal under
|
||||
* the precision. Thus, it's efficient whenever the value is expected to be smaller than the bound.
|
||||
*
|
||||
*
|
||||
* @param value
|
||||
* The value to check
|
||||
* The value to check
|
||||
* @param bound
|
||||
* The bound given
|
||||
* The bound given
|
||||
*
|
||||
* @return true, if value < bound under the given precision. False, otherwise.
|
||||
*/
|
||||
public static boolean isSmallerEqualPrecision(double value, double bound) {
|
||||
if (value < bound)
|
||||
return true;
|
||||
return isEqualPrecision(value, bound);
|
||||
return value < bound || isEqualPrecision(value, bound);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -68,11 +67,12 @@ public class MathHelper {
|
|||
* <p>
|
||||
* Note: This implementation tests if value > bound and, if it is so, if equality does NOT hold. Thus, it is
|
||||
* efficient whenever the value is not expected to be greater than the bound.
|
||||
*
|
||||
*
|
||||
* @param value
|
||||
* The value to check
|
||||
* The value to check
|
||||
* @param bound
|
||||
* The bound given.
|
||||
* The bound given.
|
||||
*
|
||||
* @return true, if value > bound and the values do not test equal under precision. False, otherwise.
|
||||
*/
|
||||
public static boolean isGreaterPrecision(double value, double bound) {
|
||||
|
@ -83,7 +83,7 @@ public class MathHelper {
|
|||
* <p>
|
||||
* Rounds the given double value to the number of decimals
|
||||
* </p>
|
||||
*
|
||||
*
|
||||
* <p>
|
||||
* <b>Warning:</b> Do not use the returned value for further calculations. Always finish calculates and use one of
|
||||
* the following methods:
|
||||
|
@ -94,12 +94,12 @@ public class MathHelper {
|
|||
* </ul>
|
||||
* to test on equality or greater than/ smaller than
|
||||
* </p>
|
||||
*
|
||||
*
|
||||
* @param value
|
||||
* the double value to round
|
||||
* the double value to round
|
||||
* @param decimals
|
||||
* number of decimals
|
||||
*
|
||||
* number of decimals
|
||||
*
|
||||
* @return the rounded number
|
||||
*/
|
||||
public static double toPrecision(double value, int decimals) {
|
||||
|
@ -116,7 +116,7 @@ public class MathHelper {
|
|||
|
||||
/**
|
||||
* Returns the value with the precision where precision is set to {@link #PRECISION_DIGITS}
|
||||
*
|
||||
*
|
||||
* @see #toPrecision(double, int)
|
||||
*/
|
||||
public static double toPrecision(double value) {
|
||||
|
|
Loading…
Reference in New Issue