瀏覽代碼

fix: floating point rounding fixes

pull/347/head
Shivam Mishra 4 年之前
父節點
當前提交
5d2c141f14
共有 2 個文件被更改,包括 13 次插入2 次删除
  1. +3
    -1
      src/js/utils/draw.js
  2. +10
    -1
      src/js/utils/helpers.js

+ 3
- 1
src/js/utils/draw.js 查看文件

@@ -1,5 +1,5 @@
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';

export const AXIS_TICK_LENGTH = 6;
@@ -389,6 +389,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,


+ 10
- 1
src/js/utils/helpers.js 查看文件

@@ -98,7 +98,7 @@ export function getPositionByAngle(angle, radius) {
* @param {object} candidate Candidate to test
* @param {Boolean} nonNegative flag to treat negative number as invalid
*/
export function isValidNumber(candidate, nonNegative=false) {
export function isValidNumber(candidate, nonNegative = false) {
if (Number.isNaN(candidate)) return false;
else if (candidate === undefined) return false;
else if (!Number.isFinite(candidate)) return false;
@@ -115,3 +115,12 @@ export function round(d) {
// https://www.jacklmoore.com/notes/rounding-in-javascript/
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');
}

Loading…
取消
儲存