jrj-front-end-tool
Version:
jrj前端工具包
30 lines (29 loc) • 780 B
text/typescript
/**
* 精确显示小数点后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): 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;
};