diff --git a/src/scale/Log.ts b/src/scale/Log.ts index 815c34733f..7607584400 100644 --- a/src/scale/Log.ts +++ b/src/scale/Log.ts @@ -64,9 +64,13 @@ class LogScale extends IntervalScale { return zrUtil.map(ticks, function (tick) { const val = tick.value; - let powVal = fixRound(mathPow(base, val)); + const rawVal = mathPow(base, val); let roundingCriterion = null; + // Fix #21099 + const precision = numberUtil.getPrecisionSafe(rawVal) || 0; + let powVal = parseFloat(fixRound(rawVal, precision as number, true)); + // Fix #4158 if (val === extent[0] && this._fixMin) { roundingCriterion = originalExtent[0]; @@ -202,7 +206,7 @@ class LogScale extends IntervalScale { if (!scaleBreakHelper) { return; } - const {parsedOriginal, parsedLogged} = scaleBreakHelper.logarithmicParseBreaksFromOption( + const { parsedOriginal, parsedLogged } = scaleBreakHelper.logarithmicParseBreaksFromOption( breakOptionList, this.base, zrUtil.bind(this.parse, this) diff --git a/test/logScale.html b/test/logScale.html index 42e959b20b..9f635121ce 100644 --- a/test/logScale.html +++ b/test/logScale.html @@ -37,6 +37,7 @@
+
+ +