web-utils-super
Version:
前端函数库
26 lines (24 loc) • 766 B
JavaScript
/**
* @desc: 减法运算,避免数据相减小数点后产生多位数和计算精度损失
* @param {Number} augend 相减的第一个数
* @param {Number} addend 相减的第二个数
* @return {Number} 差
*/
function subtract(augend, addend) {
var baseNum, baseNum1, baseNum2
var precision // 精度
try {
baseNum1 = augend.toString().split('.')[1].length
} catch (e) {
baseNum1 = 0
}
try {
baseNum2 = addend.toString().split('.')[1].length
} catch (e) {
baseNum2 = 0
}
baseNum = Math.pow(10, Math.max(baseNum1, baseNum2))
precision = baseNum1 >= baseNum2 ? baseNum1 : baseNum2
return Number(((augend * baseNum - addend * baseNum) / baseNum).toFixed(precision))
}
module.exports = subtract