UNPKG

@jrj-front-end/tools

Version:

jrj前端工具包

78 lines (74 loc) 1.88 kB
/** * 两数相加 * @param a {number} * @param b {number} * @returns a+b */ export const add = (a: number, b: number) => { return a + b; } /** * 精确显示小数点后n位(不进行4舍5入),没有时补0 * e.g: * value:123.16,num:1 ----> 123.1 * value:123.16,num:3 ----> 123.160 * @param value 传入的数字 * @param num 要精确显示多少位 * @returns */ export const keepCustomDecimalStr = (value: number, num: number = 2): string => { let s = value.toString(); let rs = s.indexOf('.'); if (rs < 0 && num > 0) { rs = s.length; s += '.'; } while (s.length <= rs + num) { s += '0'; } if (num > 0) { // 如果value的小数超过了num,进行截取 s = s.slice(0, s.indexOf('.') + num + 1) } if (num === 0 && s.indexOf('.') >= 0) { // 舍去全部小数的情况 s = s.slice(0, s.indexOf('.') + num) } return s; }; /** * 设置小数展示,小数点后为00则不展示 * @param num 需要转换的数字 * @param toFixNum 保留的小数位,默认两位 * @param roundingOFF 是否对小数四舍五入,默认为是 * @returns */ export const transferFloat = (num: number, toFixNum = 2, roundingOff = true): number => { if (typeof num !== 'number') { return 0; } if (!roundingOff) { // 执行这里不进行4舍5入 let newNum = Number(num.toFixed(toFixNum)) if (newNum > num) { newNum = newNum * Math.pow(10, toFixNum) - 1 newNum = newNum / Math.pow(10, toFixNum) return newNum } else { return newNum } } if (String(num).indexOf('.') !== -1) { let arr = String(num).split('.'); if (arr.length > 2) { return num; } else { return Number(num.toFixed(toFixNum)); } } else { return num + 1; } };