fix: backported fp rounding fix

This commit is contained in:
Arjun Choudhary 2022-11-25 16:02:28 +05:30
parent 9805e01d34
commit 26708dc26d
2 changed files with 12 additions and 1 deletions

View File

@ -4,7 +4,7 @@ import {
shortenLargeNumber,
getSplineCurvePointsStr,
} from "./draw-utils";
import { getStringWidth, isValidNumber } from "./helpers";
import { getStringWidth, isValidNumber, round } from "./helpers";
import { DOT_OVERLAY_SIZE_INCR } from "./constants";
export const AXIS_TICK_LENGTH = 6;
@ -485,6 +485,8 @@ export function yLine(y, label, width, options = {}) {
x1 += options.offset;
x2 += options.offset;
if (typeof label === "number") label = round(label);
return makeHoriLine(y, label, x1, x2, {
className: options.className,
lineType: options.lineType,

View File

@ -141,3 +141,12 @@ export function deepClone(candidate) {
return cloned;
}
/**
* Round a number to the closes precision, max max precision 4
* @param {Number} d Any Number
*/
export function round(d) {
// https://floating-point-gui.de/
// https://www.jacklmoore.com/notes/rounding-in-javascript/
return Number(Math.round(d + "e4") + "e-4");
}