diff options
author | Adrien Hopkins <adrien.p.hopkins@gmail.com> | 2024-08-22 10:18:28 -0500 |
---|---|---|
committer | Adrien Hopkins <adrien.p.hopkins@gmail.com> | 2024-08-22 11:45:37 -0500 |
commit | 43e3b70003fdda6f2ccdd2471e3ee3f97ad50ada (patch) | |
tree | 28130bae5e80fdfb156f828007f35e59804d0e22 | |
parent | 6f1bbc1024eae98f1815ab5f9e9cb3399f5eef9c (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.java | 2 |
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); } |