从字符串转换时如何在javascript中添加值
我有一个字符串,我试图将其转换为16位小数的十进制数。然后我想将该数字添加到数字0中,该数字应为:从字符串转换时如何在javascript中添加值,javascript,double,decimal,Javascript,Double,Decimal,我有一个字符串,我试图将其转换为16位小数的十进制数。然后我想将该数字添加到数字0中,该数字应为: 30280.9529335 但我得到:030280.9529335 如何在javascript中正确地实现这一点 var totalnumber=0;var str=“30280.9529335”; totalnumber=totalnumber+ConvertToDouble(str); console.log(totalnumber)//30280.9529335 函数ConvertToD
30280.9529335
但我得到:030280.9529335
如何在javascript中正确地实现这一点
var totalnumber=0;var str=“30280.9529335”;
totalnumber=totalnumber+ConvertToDouble(str);
console.log(totalnumber)//30280.9529335
函数ConvertToDouble(x){
返回编号.parseFloat(x).toFixed(16);
}
您可以使用与以前类似的Number.parseFloat
和Number.parseInt
。您错误地使用了toFixed
toFixed()
方法将数字转换为字符串,保留指定的小数位数。如果所需的小数数高于实际数,则添加空值以创建所需的小数长度
例如:
设totalnumber=0;
让str=“30280.9529335”;
函数转换(a,b){
试一试{
return(Number.parseInt(a)+Number.parseFloat(b)).toFixed(16)
}捕获(错误){
返回误差;
}
}
函数转换器b(a,b){
试一试{
返回Number.parseInt(a)+Number.parseFloat(b)
}捕获(错误){
返回误差;
}
}
console.log(转换(totalnumber,str))
console.log(convertb(totalnumber,str))
您的问题是toFixed
,toFixed
返回String
而不是数字的位置
console.log(typeof(1).toFixed(2))
它工作了,但我想知道:如果我删除了“.toFixed(16)”,它在计算时仍然使用16位小数,还是只浮动7位小数?@Andreas它将像以前一样只使用7位小数。@code-Maniac我明白了,因此,在javascript/node.js中根本不可能计算16位小数?我不确定.toFixed(16)是否正确,我认为它返回了一个16位小数。所以这是一根绳子。这对于发生的连接是有意义的。
let a = "30280.9529335";
console.log(parseFloat(a))
// 30280.9529335