js怎么向上取整,js 如何向上取整得到距离最近的整十,整百,整千,整万的值?...

本文介绍了一种数值上取整的算法实现方法,并通过多个示例展示了如何针对不同的数值进行有效的向上取整操作,适用于多种场景的数据处理需求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

例如:如果值为6,则返回10,如果值为16,则返回20,如果值为66,则返回70,如果值为166,则返回200,如果值为666,则返回700,如果值为1666,则返回2000。以此类推,数据不限制大小

回答

function ceilNumber(number){

var bite = 0;

if(number < 10){

return 10;

}

while( number >= 10 ){

number /= 10;

bite += 1;

}

return Math.ceil(number) * Math.pow(10,bite);

}

function setCeil(value){

if (value < 10) {

return 10

} else {

let num = Number(value.toString().substring(0,1));

return (num + 1) * Math.pow(10,(value.toString().length - 1));

}

}

那你这个步进只能按指定值来步进了,把那边的回答稍稍改一下就好

function upTo(v, steps) {

const step = steps.find(step => step > v);

const mod = v % step;

return mod ? v - mod + step : v;

}

const steps = [10, 20, 50, 100, 200, 500, 1000];

const nums = [6, 16, 66, 166, 666];

nums.forEach(n => console.log(upTo(n, steps)));

// 输出

// 10 20 100 200 1000

function dada(value) {

const array = Array.from(`${ value }`);

const [_, ...behinds] = array;

if(array.length < 2) {

return 10;

}

else if(behinds.every(i => i === '0')) {

return value;

}

else {

return Number.parseInt(array.map((char, index) => index === 0 ? Number.parseInt(char) + 1 : 0).join(''));

}

}

[1, 11, 10, 20, 21, 211, 166, 311].forEach(value => {

console.log(`${ value }: ${ dada(value) }`);

});

function ceilNum(num){

const bite = Math.pow(10,String(num).length-1||1)

return Math.ceil(num/bite)*bite

}

function test(){

const nums = [6, 16, 66, 166, 666];

nums.forEach(n => console.log(ceilNum(n)));

}

test()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值