在javascript中查找位数
我试图在javascript中获得一个数字的位数,但我在网上找到的方程式中遇到了一些边缘情况 这是我用的,来自 但问题是,如果输入1000这样的数字,不知何故会出现javascript舍入错误,其中的值显示为在javascript中查找位数,javascript,math,logarithm,natural-logarithm,Javascript,Math,Logarithm,Natural Logarithm,我试图在javascript中获得一个数字的位数,但我在网上找到的方程式中遇到了一些边缘情况 这是我用的,来自 但问题是,如果输入1000这样的数字,不知何故会出现javascript舍入错误,其中的值显示为3.99997 我注意到,只要您的数字不在-1和1之间,您就可以在Math.abs(val)中向val添加1,它将适当地设置位数,但看起来很混乱 我试着将val转换成字符串,并获取长度,但对于十进制来说,这不起作用,比如说,使用0.2——长度是3 什么是好的方程式/函数?将数字设为字符串,并
3.99997
我注意到,只要您的数字不在-1和1之间,您就可以在Math.abs(val)中向val添加1
,它将适当地设置位数,但看起来很混乱
我试着将val
转换成字符串,并获取长度,但对于十进制来说,这不起作用,比如说,使用0.2
——长度是3
什么是好的方程式/函数?将数字设为字符串,并使用正则表达式只计算数字可以起作用。 函数getNumDigits(val){ 返回(${val}`.match(/\d/g)| |[]).length }
log(getNumDigits(2.5245234))我得到
1000
的3
的实际值。顺便说一句,为什么我们是自然主义者?
getNumDigits(val){
return val === 0 ? 1 : Math.floor(Math.log(Math.abs(val)) / Math.LN10 + 1);
}