我正在尝试在 javascript 中获取数字的位数,但是我在网上找到的方程式遇到了一些极端情况。
这是我正在使用的,来自这个网站。
getNumDigits(val){
return val === 0 ? 1 : Math.floor(Math.log(Math.abs(val)) / Math.LN10 + 1);
}
但问题是,如果你输入一个像 1000 这样的数字,你会以某种方式得到一个 javascript 舍入错误,其中的值就像3.999997
我注意到,只要你的数字不在 -1 和 1 之间,你就可以添加1
到 Math.abs(val) 中的 val 并且它会适当地设置位数,但它看起来很乱.
我已经尝试将其val
转换为字符串并获取长度,但这在例如小数的情况下不起作用,您使用类似的东西0.2
- 因为它会说长度是 3。
使用什么好的方程/函数?