JS实现去除小数末尾多余的0
str 为字符串
function toPrecision(str) {
if (!Boolean(str)) return '0';
if (!(/^[0-9.]+$/g.test(str))) return '0';
while (str.includes(".") && (str.endsWith('.') || str.endsWith('0'))) {
str = str.slice(0, -1)
}
return str
}
//‘10.00000100000’ ‘10.000001’
//‘0.0010100’ ‘0.00101’
//‘0.001a’ ‘0’
加入保留N位的方法:
num为数字, len指保留位数.
function toPrecision(num, len) {
let str = num.toFixed(len);
if (!Boolean(str)) return '0';
if (!(/^[0-9.]+$/g.test(str))) return '0';
while (str.includes(".") && (str.endsWith('.') || str.endsWith('0'))) {
str = str.slice(0, -1)
}
return str
}
tips:同时调用多次或者间隔时间短问题 可以使用定时器 invoke/settimeout
假设 忍耐时间为1s 1s内出现调用,重置定时器(取消上次的,重新开一个定时器),这样可以过滤多余调用