Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
获取float';JavaScript中的s长度_Javascript_Math_Floating Point_Undefined_Precision - Fatal编程技术网

获取float';JavaScript中的s长度

获取float';JavaScript中的s长度,javascript,math,floating-point,undefined,precision,Javascript,Math,Floating Point,Undefined,Precision,我试图在JavaScript中获取浮点值的长度,但我无法使其作为字符串工作: var length = ((x + '').toString().length; 因为,undefined是变量的一个非常规则且可能的值,所以我最终得到了“undefined”的长度 我看到了各种可能的解决办法: 使用number.isFloat()在数组中分配每个float的数字,并计算数组的长度 通过找到类似的数学解:(Math.log10((newValue^(newValue>>31))-(newValu

我试图在JavaScript中获取
浮点值的长度,但我无法使其作为
字符串工作:

var length = ((x + '').toString().length;
因为,
undefined
是变量的一个非常规则且可能的值,所以我最终得到了
“undefined”
的长度

我看到了各种可能的解决办法:

  • 使用
    number.isFloat()
    在数组中分配每个
    float
    的数字,并计算数组的长度

  • 通过找到类似的数学解:
    (Math.log10((newValue^(newValue>>31))-(newValue>>31))|0)+1
    ,但应用于
    浮点值,而不仅仅是整数

  • 循环每个数字的伪函数

  • 使用一个特定的数学库(),在我看来这是最好的解决方案,因为我无法找到任何可以执行此任务而不损害性能的工作函数


首先检查数字是否为数字,然后返回其字符串表示形式的长度:

let number=[undefined,null,12345,1.2345,'12345','1.2345','abcd','1.2345abcd','0.1+0.2,0.3,{},[]
console.log(number.map)(number=>{
返回编号===null | | isNaN(编号)?0:number.toString().length;

}));
首先检查
number
是否为数字,然后返回其字符串表示形式的长度:

let number=[undefined,null,12345,1.2345,'12345','1.2345','abcd','1.2345abcd','0.1+0.2,0.3,{},[]
console.log(number.map)(number=>{
返回编号===null | | isNaN(编号)?0:number.toString().length;

}));要查找浮点数的长度而不遇到未定义的问题,请使用try、catch和throw

var num=document.getElementById(“num”).value;
var result=document.getElementById(“结果”).value;
var parsedFloat;
函数foo(){
num=document.getElementById(“num”).value;
结果=document.getElementById(“结果”).value;
试一试{
如果(num==parseFloat(num)&&num!==undefined){//如果数字等于变成浮点的数字;“1.2”变为1.2,“thiswontwork”变为NaN(不是数字)
parsedFloat=num;
if(parsedFloat!=parseInt(parsedFloat)){//如果它是浮点,而不是整数
parsedFloat=parsedFloat.substring(1);//删除最后一个数字,以便由于小数点而减去长度
}//目前,我没有“.0”的任何内容。
结果=parsedFloat.length;
}否则{
抛出“必须是一个数字!”;
}
}捕捉(错误){
结果=错误;
}最后{
document.getElementById(“结果”).value=result;
}
}



点击我要查找浮点数的长度而不遇到未定义的问题,请使用try、catch和throw

var num=document.getElementById(“num”).value;
var result=document.getElementById(“结果”).value;
var parsedFloat;
函数foo(){
num=document.getElementById(“num”).value;
结果=document.getElementById(“结果”).value;
试一试{
如果(num==parseFloat(num)&&num!==undefined){//如果数字等于变成浮点的数字;“1.2”变为1.2,“thiswontwork”变为NaN(不是数字)
parsedFloat=num;
if(parsedFloat!=parseInt(parsedFloat)){//如果它是浮点,而不是整数
parsedFloat=parsedFloat.substring(1);//删除最后一个数字,以便由于小数点而减去长度
}//目前,我没有“.0”的任何内容。
结果=parsedFloat.length;
}否则{
抛出“必须是一个数字!”;
}
}捕捉(错误){
结果=错误;
}最后{
document.getElementById(“结果”).value=result;
}
}



点击我对您来说,浮点的“长度”到底是多少?你需要它干什么?像这样?(仅限点)那么
const len=v=>isNaN(v)呢?0:String(+v).length
const len=v=>isNaN(v)?0:字符串(+v).length-(+v===数学层(v))
如果您不想计算点,或者
const len=v=>String(v).match(/\d/g).length
只计算传递值中的数字。为什么不能使用String来计算长度?如果您指的是像
未定义的
,那么代码段会处理这些值。对于不是数字的所有内容,它都返回0。@Thomas注意到第一个选项不适用于
null
,因为
isNaN(null)
返回
false
,而
String(+null)
返回
'0'
,因此它是
。length
将是1而不是0。第二种方法也行。对你来说,浮点数的“长度”到底是多少?你需要它干什么?像这样?(仅限点)那么
const len=v=>isNaN(v)呢?0:String(+v).length
const len=v=>isNaN(v)?0:字符串(+v).length-(+v===数学层(v))
如果您不想计算点,或者
const len=v=>String(v).match(/\d/g).length
只计算传递值中的数字。为什么不能使用String来计算长度?如果您指的是像
未定义的
,那么代码段会处理这些值。对于不是数字的所有内容,它都返回0。@Thomas注意到第一个选项不适用于
null
,因为
isNaN(null)
返回
false
,而
String(+null)
返回
'0'
,因此它是
。length
将是1而不是0。第二种方法会奏效。