确定是千分之一还是百或数十

时间:2018-10-02 03:48:06

标签: javascript

如何确定数字是否为千分之一,千分之一,百分数,十进制。我需要将它们转换为最接近的值。

例如124。由于它是百分之一,我将使用

将其转换为200。
Math.ceil(124/100) * 100

例如4560。由于它是千分之一,因此我将使用

将其转换为5000。
Math.ceil(5000/1000) * 1000

2 个答案:

答案 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)));