Javascript 将数字转换为小数点后两位

Javascript 将数字转换为小数点后两位,javascript,Javascript,我有一个号码 num = 0.99922312 我想把它缩短到0.99。我想我可以用一个简单的toFixed num.toFixed(2) 但是,这只是返回 1.00。我还尝试了一些十进制组合,比如.toFixed(2.2)等等 有人能给我指一下正确的方向吗?这是最简单的方法: var num=0.99922312 var twoDecimals=num.toString().substring(0,4) console.log(两位小数)这是最简单的方法: var num=0.9992

我有一个号码

num = 0.99922312
我想把它缩短到0.99。我想我可以用一个简单的toFixed

num.toFixed(2)
但是,这只是返回
1.00
。我还尝试了一些十进制组合,比如.toFixed(2.2)等等


有人能给我指一下正确的方向吗?

这是最简单的方法:

var num=0.99922312
var twoDecimals=num.toString().substring(0,4)

console.log(两位小数)
这是最简单的方法:

var num=0.99922312
var twoDecimals=num.toString().substring(0,4)

log(两位小数)
您只需将数字转换为字符串,获取小数点的索引,并使用slice删除小数点后前两位字符后的所有字符

函数截断(num){
var str=num.toString();
var idx=str.indexOf('.');
返回idx!=-1?str.slice(0,idx+3):str;
}
log(0.99922312,“->”,truncate(0.99922312));
log(0.8,“->”,truncate(0.8));
log(0.121,“->”,truncate(0.121));
log(0.235,“->”,truncate(0.235));

log(12,“->”,truncate(12))您可以简单地将数字转换为字符串,获取小数点的索引,并使用slice删除小数点后前两个字符后的所有字符

函数截断(num){
var str=num.toString();
var idx=str.indexOf('.');
返回idx!=-1?str.slice(0,idx+3):str;
}
log(0.99922312,“->”,truncate(0.99922312));
log(0.8,“->”,truncate(0.8));
log(0.121,“->”,truncate(0.121));
log(0.235,“->”,truncate(0.235));

log(12,“->”,truncate(12))不要对基元类型使用
new
。这种方法是非通用的:
num=1234.56
->
1234
(0位小数),
num=123.456
->
123.
(0位小数,挂点),
num=12345
->
1234
(oops)等等。不要对基元类型使用
new
。这种方法是非通用的:
num=1234.56
->
1234
(0位小数),
num=123.456
->
123.
(0位小数,挂点),
num=12345
->
1234
(oops)等等。我想这是一种倒退的方式。我需要将数字转换为字符串,将其切分,然后再次转换为数字?公平。谢谢你的建议。
toFixed
也会创建一个字符串。如果不是为了显示,为什么要截断它?我唯一想到的是货币计算,但你应该使用一个专门的库来进行计算。@JohnMontgomery,谢谢,我没有意识到toFixed也创建了一个字符串。我从后端得到的是tensorflow预测结果,然后根据预测数在前端排序。数字也会显示出来。@alienbuild我的答案对你有用吗?我想有点像,但看起来很落后。我需要将数字转换为字符串,将其切分,然后再次转换为数字?公平。谢谢你的建议。
toFixed
也会创建一个字符串。如果不是为了显示,为什么要截断它?我唯一想到的是货币计算,但你应该使用一个专门的库来进行计算。@JohnMontgomery,谢谢,我没有意识到toFixed也创建了一个字符串。我从后端得到的是tensorflow预测结果,然后根据预测数在前端排序。数字也会显示。@alienbuild我的答案对您有用吗?