UNPKG

flo-utils

Version:
19 lines 703 B
/** * 精确加法, 预防相加结果精度问题 * 支持同单位数相加 * @param num1 {number, string} * @param num2 {number, string} */ export default 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; }