如何确定数字是否为千分之一,千分之一,百分数,十进制。我需要将它们转换为最接近的值。
例如124。由于它是百分之一,我将使用
将其转换为200。Math.ceil(124/100) * 100
例如4560。由于它是千分之一,因此我将使用
将其转换为5000。Math.ceil(5000/1000) * 1000
答案 0 :(得分:3)
您可以使用以下方式将给定数字转换为最接近的10
function convertToNearest(num){
var mul = 1;
while(num > (mul * 10))
mul = mul * 10;
return Math.ceil(num/mul) * mul;
}
答案 1 :(得分:0)
此解决方案可处理整数(正负):
function nearest(n) {
if (n === 0)
return 0;
let neg = (n < 0);
if (neg)
n = -n;
let x = 10 ** Math.floor(Math.log10(n));
if (x === 1)
x = 10;
let ans = Math.ceil(n/x) * x;
return (neg) ? -ans : ans;
}
[-230, 0, 1, 8, -18, -6540, -120, -5, 12, 4560, 320, 888, 83293, 2323203]
.forEach(n => console.log('%s\t->\t%s', n, nearest(n)));