您好,欢迎来到汇智旅游网。
搜索
您的当前位置:首页项目中遇到的问题3:给数字指定长度,长度不足的时候在前面补0

项目中遇到的问题3:给数字指定长度,长度不足的时候在前面补0

来源:汇智旅游网

问题描述:在项目中遇到产品要求自动生成序号,序号要求是四位,如果不足四位就以0补充,例如一个数字是32,则显示应该为0032

以下使用num代表需要转换的数字,length代表需要保留的位数

解决方法1:

let num = 38;
function fn(num, length) {
		return (num/Math.pow(10,length)).toFixed(length).substr(2);
}
fn(num, 4)

// 这个方法先调用Math.pow求出10的length幂的值,再用num/这个值,得出一个小数,再调用toFixed保留小数位数后length位,toFixed返回值是一个字符串,此时再调用字符串的substr方法截取掉字符串的小数点和小数点前面的0

解决方法2:

let num = 38;
function fn(num, length) {
		return ( '0000000000000000' + num ).substr( -length );
}
let x = fn(num, 4)

// 这个方法使用到了字符串的拼接和字符串的截取,先在当前数字前面拼接上多个0,再从后往前截取需要的位数

解决方法3:

let num = 38;
function fn(num, length) {
    	return (Array(length).join('0') + num).slice(-length);
}
let x = fn(num, 4)

// 这个方法中使用了Array(length)生成一个空数组,Array()函数的特性,如果只传递给它一个数字参数,会返回指定个数元素为空的数组,所以调用了Array(length)方法后,生成了一个lengh位数的数组,但元素都为empty;再调用数组的join将数组按特定字符转换成字符串,然后将num拼接到这个字符串的最后,再调用slice把字符串从后往前截取,截取位数传入你需要的位数

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- hzar.cn 版权所有 赣ICP备2024042791号-5

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务