从我的角度定义平滑数字: 10,50,100,200,300,400,...... 1000,2000,3000 ...... 10000等
我有一些动态即将到来的数据(例如,单个数字数组)。
我不知道,这个数字有多大,我不想把它四舍五入到最近的平滑数。
例如:
我不想把54
绕到50
或100
。 (很高兴有3个选项:向上舍入,向下舍入,舍入到最近)
虽然像209282938
这样的大数字应该四舍五入到200000000
或300000000
我怎样才能做到这一点?
选项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()