UNPKG

flo-utils

Version:
26 lines (24 loc) 796 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = addNums; /** * 精确加法, 预防相加结果精度问题 * 支持同单位数相加 * @param num1 {number, string} * @param num2 {number, string} */ function addNums(num1, num2) { var dreg = /^\d+(\.\d+)?/g; var d1 = num1.toString().replace(dreg, ''); var d2 = num2.toString().replace(dreg, ''); var n1 = parseFloat(num1); var n2 = parseFloat(num2); if (d1 !== d2) return "".concat(num1, " + ").concat(num2); var num1Digits = (n1.toString().split('.')[1] || '').length; var num2Digits = (n2.toString().split('.')[1] || '').length; var baseNum = Math.pow(10, Math.max(num1Digits, num2Digits)); var add = (n1 * baseNum + n2 * baseNum) / baseNum; return add + d1; }