From 30b3c5bfd4100c34eaea5b7dd15efc841a328d29 Mon Sep 17 00:00:00 2001 From: hannibal2 <24389977+hannibal00212@users.noreply.github.com> Date: Mon, 28 Aug 2023 14:11:44 +0200 Subject: fixed float and double rounding errors --- src/main/java/at/hannibal2/skyhanni/utils/LorenzUtils.kt | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) (limited to 'src/main/java/at/hannibal2/skyhanni/utils') diff --git a/src/main/java/at/hannibal2/skyhanni/utils/LorenzUtils.kt b/src/main/java/at/hannibal2/skyhanni/utils/LorenzUtils.kt index 08f88ea17..248efd5df 100644 --- a/src/main/java/at/hannibal2/skyhanni/utils/LorenzUtils.kt +++ b/src/main/java/at/hannibal2/skyhanni/utils/LorenzUtils.kt @@ -119,13 +119,19 @@ object LorenzUtils { fun Double.round(decimals: Int): Double { var multiplier = 1.0 repeat(decimals) { multiplier *= 10 } - return kotlin.math.round(this * multiplier) / multiplier + val result = kotlin.math.round(this * multiplier) / multiplier + val a = result.toString() + val b = toString() + return if (a.length > b.length) this else result } - fun Float.round(decimals: Int): Double { + fun Float.round(decimals: Int): Float { var multiplier = 1.0 repeat(decimals) { multiplier *= 10 } - return kotlin.math.round(this * multiplier) / multiplier + val result = kotlin.math.round(this * multiplier) / multiplier + val a = result.toString() + val b = toString() + return if (a.length > b.length) this else result.toFloat() } // TODO replace all calls with regex -- cgit