fix: floating point rounding fixes

This commit is contained in:
Shivam Mishra 2020-10-26 12:29:10 +05:30
parent e2d7ce8b21
commit 5d2c141f14
2 changed files with 13 additions and 2 deletions

View File

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

View File

@ -115,3 +115,12 @@ export function round(d) {
// https://www.jacklmoore.com/notes/rounding-in-javascript/ // https://www.jacklmoore.com/notes/rounding-in-javascript/
return Number(Math.round(d + 'e4') + 'e-4'); return Number(Math.round(d + 'e4') + 'e-4');
} }
/**
* 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');
}