@jrj-front-end/tools
Version:
jrj前端工具包
84 lines (83 loc) • 2.28 kB
JavaScript
;
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;