Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/401.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
Javascript 去掉大数字的小数_Javascript - Fatal编程技术网

Javascript 去掉大数字的小数

Javascript 去掉大数字的小数,javascript,Javascript,我试图做一个功能来美化我的数字,这似乎是非常小的故障,例如400显示为4H,这是正确的430显示为4.3H仍然可以接受,但403显示为4.03H,这是不可接受的这里是我的代码不知道该怎么做来修复它 编辑:当数字变大时,比如5003,它们将显示为5.003K,我希望它显示5K 编辑:当数字变大时,比如5003,它们将显示为5.003K,我希望它显示5K 基本上,小数点不应该超过2 这里有一张清单 5000 -> 5K 5500 -> 5.5k 5050 -> 5.05k 5005

我试图做一个功能来美化我的数字,这似乎是非常小的故障,例如400显示为4H,这是正确的430显示为4.3H仍然可以接受,但403显示为4.03H,这是不可接受的这里是我的代码不知道该怎么做来修复它

编辑:当数字变大时,比如5003,它们将显示为5.003K,我希望它显示5K 编辑:当数字变大时,比如5003,它们将显示为5.003K,我希望它显示5K 基本上,小数点不应该超过2 这里有一张清单

5000 -> 5K
5500 -> 5.5k
5050 -> 5.05k
5005 -> 5K
var范围=[
{除法器:10000000000000000000,后缀:'Dec'},
{除法器:10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,
{除法器:10000000000000000000,后缀:'Oct'},
{除法器:10000000000000000000000,后缀:'Sep'},
{除法器:1000000000000000000,后缀:'Sex'},
{除法器:10000000000000000,后缀:'Quin'},
{除法器:10000000000000,后缀:'Quad'},
{除法器:10000000000,后缀:'T'},
{除法器:100000000,后缀:'B'},
{除法器:1000000,后缀:'M'},
{除法器:1000,后缀:'K'},
{除法器:100,后缀:'H'}
];
函数INP(数字,四舍五入){
对于(变量i=0;i=范围[i]。除法器){
if(round==null){
返回(数字/范围[i]。除法器)+范围[i]。后缀;
}否则{
return(number/ranges[i].除法器).toFixed(round)+ranges[i].后缀;
}
}
}
返回编号.toString();
}
.wrapper{
位置:固定;
最高:35%;
左:35%;
}


var字段=document.getElementById(“num”); var div=document.getElementById(“输出”); field.onkeyup=函数(){ var num=document.getElementById(“num”).value; var rounded=document.getElementById(“rounded”).value; 如果(四舍五入==真){ var输出=INP(num,true); }否则{ var输出=INP(num); } div.innerHTML=“输出:”+输出; }
您有两个问题

首先,
if(rounded==true)
不执行您想要的操作
rounded
是一个字符串,将字符串与布尔值进行比较会将布尔值转换为字符串,这将导致字符串
“1”
,因此它相当于
if(rounded==“1”)
。您可以使用
parseInt()
将输入转换为整数,然后使用
if(舍入)

其次,您没有将
四舍五入的值传递给
INP
,而是传递了
true
。然后,当它在
toFixed()
中使用它时,它将转换为整数
1
,因此它总是舍入到小数点后1位,而不是
舍入的
输入中的数字

要去除
toFixed
结果中多余的尾随零,请对其调用
parseFloat()
,将其转换回数字

var范围=[
{除法器:10000000000000000000,后缀:'Dec'},
{除法器:10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,
{除法器:10000000000000000000,后缀:'Oct'},
{除法器:10000000000000000000000,后缀:'Sep'},
{除法器:1000000000000000000,后缀:'Sex'},
{除法器:10000000000000000,后缀:'Quin'},
{除法器:10000000000000,后缀:'Quad'},
{除法器:10000000000,后缀:'T'},
{除法器:100000000,后缀:'B'},
{除法器:1000000,后缀:'M'},
{除法器:1000,后缀:'K'},
{除法器:100,后缀:'H'}
];
函数INP(数字,四舍五入){
对于(变量i=0;i=范围[i]。除法器){
if(round==null){
返回(数字/范围[i]。除法器)+范围[i]。后缀;
}否则{
返回parseFloat((数字/范围[i]。除法器).toFixed(舍入))+ranges[i]。后缀;
}
}
}
返回编号.toString();
}
var字段=document.getElementById(“num”);
var div=document.getElementById(“输出”);
field.onkeyup=函数(){
var num=parseInt(document.getElementById(“num”).value,10);
var rounded=parseInt(document.getElementById(“rounded”).value,10);
如果(四舍五入){
var输出=INP(数值,四舍五入);
}否则{
var输出=INP(num);
}
div.innerHTML=“输出:”+输出;
}
.wrapper{
位置:固定;
最高:35%;
左:35%;
}


您有两个问题

首先,
if(rounded==true)
不执行您想要的操作
rounded
是一个字符串,将字符串与布尔值进行比较会将布尔值转换为字符串,这将导致字符串
“1”
,因此它相当于
if(rounded==“1”)
。您可以使用
parseInt()
将输入转换为整数,然后使用
if(舍入)

其次,您没有将
四舍五入的值传递给
INP
,而是传递了
true
。然后,当它在
toFixed()
中使用它时,它将转换为整数
1
,因此它总是舍入到小数点后1位,而不是
舍入的
输入中的数字

要去除
toFixed
结果中多余的尾随零,请对其调用
parseFloat()
,将其转换回数字

var范围=[
{除法器:10000000000000000000,后缀:'Dec'},
{除法器:10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,
{除法器:10000000000000000000,后缀:'Oct'},
{除法器:10000000000000000000000,后缀:'Sep'},
{除法器:1000000000000000000,后缀:'Sex'},
{除法器:10000000000000000,后缀:'Quin'},
{除法器:10000000000000,后缀:'Quad'},
{除法器:10000000000,后缀:'T'},
{除法器:100000000,后缀:'B'},
{除法器:1000000,后缀:'M'},
{除法器:1000,后缀:'K'},
{分隔符