From 43e3b70003fdda6f2ccdd2471e3ee3f97ad50ada Mon Sep 17 00:00:00 2001 From: Adrien Hopkins Date: Thu, 22 Aug 2024 10:18:28 -0500 Subject: 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. --- src/main/java/sevenUnits/unit/LinearUnitValue.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/main') 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); } -- cgit v1.2.3