UNPKG

@jrj-front-end/tools

Version:

jrj前端工具包

84 lines (83 loc) 2.28 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.transferFloat = exports.keepCustomDecimalStr = exports.add = void 0; /** * 两数相加 * @param a {number} * @param b {number} * @returns a+b */ var add = function (a, b) { return a + b; }; exports.add = add; /** * 精确显示小数点后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 */ var keepCustomDecimalStr = function (value, num) { if (num === void 0) { num = 2; } var s = value.toString(); var 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; }; exports.keepCustomDecimalStr = keepCustomDecimalStr; /** * 设置小数展示,小数点后为00则不展示 * @param num 需要转换的数字 * @param toFixNum 保留的小数位,默认两位 * @param roundingOFF 是否对小数四舍五入,默认为是 * @returns */ var transferFloat = function (num, toFixNum, roundingOff) { if (toFixNum === void 0) { toFixNum = 2; } if (roundingOff === void 0) { roundingOff = true; } if (typeof num !== 'number') { return 0; } if (!roundingOff) { // 执行这里不进行4舍5入 var 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) { var arr = String(num).split('.'); if (arr.length > 2) { return num; } else { return Number(num.toFixed(toFixNum)); } } else { return num + 1; } }; exports.transferFloat = transferFloat;