import Decimal from 'decimal.js' // 默认保留小数位(你可根据业务修改,比如金额一般 2 位) const DEFAULT_DP = 2 // 内部方法:统一转换 Decimal,避免 null/undefined 报错 function D(n) { return new Decimal(n || 0) } /** * 保留小数位 & 四舍五入 * @param value 数值 * @param dp 保留位数(默认 DEFAULT_DP) */ export function toFixed(value, dp = DEFAULT_DP) { return D(value).toDecimalPlaces(dp).toNumber() } // 加法 export function add(a, b, dp = DEFAULT_DP) { return D(a).plus(b).toDecimalPlaces(dp).toNumber() } // 减法 export function sub(a, b, dp = DEFAULT_DP) { return D(a).minus(b).toDecimalPlaces(dp).toNumber() } // 乘法 export function mul(a, b, dp = DEFAULT_DP) { return D(a).times(b).toDecimalPlaces(dp).toNumber() } // 除法 export function div(a, b, dp = DEFAULT_DP) { return D(a).div(b || 1).toDecimalPlaces(dp).toNumber() }