From 10de9736080bac3ef52540addd75aa2e317772c7 Mon Sep 17 00:00:00 2001 From: David Schnurr Date: Mon, 4 Oct 2021 07:10:13 -0700 Subject: [PATCH] fix intervals (#352) --- src/js/utils/intervals.js | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/js/utils/intervals.js b/src/js/utils/intervals.js index 6218117..6c50bc5 100644 --- a/src/js/utils/intervals.js +++ b/src/js/utils/intervals.js @@ -69,7 +69,15 @@ function getChartIntervals(maxValue, minValue=0) { normalMaxValue = normalMaxValue.toFixed(6); let intervals = getChartRangeIntervals(normalMaxValue, normalMinValue); - intervals = intervals.map(value => value * Math.pow(10, exponent)); + intervals = intervals.map(value => { + // For negative exponents we want to divide by 10^-exponent to avoid + // floating point arithmetic bugs. For instance, in javascript + // 6 * 10^-1 == 0.6000000000000001, we instead want 6 / 10^1 == 0.6 + if (exponent < 0) { + return value / Math.pow(10, -exponent); + } + return value * Math.pow(10, exponent); + }); return intervals; }