从我的角度来看平滑数的定义:
10、50、100、200、300、400,... 1000、2000、3000 ... 10000等。
我有一些带有数字的动态数据(例如,单个数字数组)。
我不知道可以有多少个数字,我也不能四舍五入到最接近的平滑数字。
例如:
我不会将54
舍入为50
或100
。 (最好有3个选项:四舍五入,四舍五入和四舍五入到最接近)
尽管209282938
之类的大数应四舍五入为200000000
或300000000
我该如何实现?
答案 0 :(得分:3)
选项1
您可以使用.toPrecision()
It is explained in more detail here,但基本上您可以指定有效数字的数量,例如
function precise(x) {
return Number.parseFloat(x).toPrecision(1);
}
console.log(precise(54));
// output: "50"
console.log(precise(2051075640));
// output: "2000000000 "
console.log(precise('99.999'));
// output: "100"
选项2
如果要始终向上舍入或向下舍入,可以使用.ceil()
和/或.floor()
注意:这些舍入到最接近的整数,但是您可以处理输入以利用它们:
.ceil()
或.floor()