summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdrien Hopkins <adrien.p.hopkins@gmail.com>2024-08-22 10:18:28 -0500
committerAdrien Hopkins <adrien.p.hopkins@gmail.com>2024-08-22 11:45:37 -0500
commit43e3b70003fdda6f2ccdd2471e3ee3f97ad50ada (patch)
tree28130bae5e80fdfb156f828007f35e59804d0e22
parent6f1bbc1024eae98f1815ab5f9e9cb3399f5eef9c (diff)
Add 1e-12 to unit sum parts before flooring
This ensures that small errors from floor arithmetic will not, for example, cause 2 feet to be converted to 1 foot + 12 in.
-rw-r--r--src/main/java/sevenUnits/unit/LinearUnitValue.java2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/main/java/sevenUnits/unit/LinearUnitValue.java b/src/main/java/sevenUnits/unit/LinearUnitValue.java
index db2936c..a8848fc 100644
--- a/src/main/java/sevenUnits/unit/LinearUnitValue.java
+++ b/src/main/java/sevenUnits/unit/LinearUnitValue.java
@@ -138,7 +138,7 @@ public final class LinearUnitValue {
for (final LinearUnit unit : others.subList(0, others.size() - 1)) {
final LinearUnitValue remainingInUnit = remaining.convertTo(unit);
final LinearUnitValue value = getExact(unit,
- Math.floor(remainingInUnit.getValueExact()));
+ Math.floor(remainingInUnit.getValueExact() + 1e-12));
values.add(value);
remaining = remaining.minus(value);
}