From 06b60540719773c1e4b1defa4107e65fbeefafe0 Mon Sep 17 00:00:00 2001 From: Jakob Ketterl Date: Sat, 27 Feb 2021 23:21:14 +0100 Subject: [PATCH] improve floating point handling --- htdocs/lib/settings/ExponentialInput.js | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/htdocs/lib/settings/ExponentialInput.js b/htdocs/lib/settings/ExponentialInput.js index 824d797..65bf1ce 100644 --- a/htdocs/lib/settings/ExponentialInput.js +++ b/htdocs/lib/settings/ExponentialInput.js @@ -14,7 +14,13 @@ $.fn.exponentialInput = function() { var setExponent = function() { var newExponent = parseInt($exponent.val()); var delta = currentExponent - newExponent; - $input.val(parseFloat($input.val()) * 10 ** delta); + if (delta >= 0) { + $input.val(parseFloat($input.val()) * 10 ** delta); + } else { + // should not be necessary to handle this separately, but floating point precision in javascript + // does not handle this well otherwise + $input.val(parseFloat($input.val()) / 10 ** -delta); + } currentExponent = newExponent; };