我在Javascript中有一个数字,我知道它小于10000,而且也是非负的。我想将它显示为一个四位数的数字,并带有前导零。有什么比下面的更优雅的吗?
if(num<10) num="000"+num;
else if(num<100) num="00"+num;
else if(num<1000) num="0"+num;
我想要一些内置在Javascript中的东西,但我似乎找不到任何东西。
发布于 2018-04-06 00:50:32
因为可以使用String.prototype.padStart和String.prototype.padEnd简单地将ES2017填充到最小长度
let num = 3
let str = num.toString().padStart(3, "0")
console.log(str) // "003"
或者,如果浮点数的整个部分应该是固定的长度:
let num = 3.141
let arr = num.toString().split(".")
arr[0] = arr[0].padStart(3, "0")
let str = arr.join(".")
console.log(str) // "003.141"
发布于 2015-04-24 04:00:53
我能想到的最简单的方法是:
("000" + num).slice(-4)
填充的数字是一个字符串。
将数字添加到字符串时,该数字将转换为字符串。
string具有方法slice,该方法返回字符串的一段固定长度。
如果length为负,则从字符串的末尾开始对返回的字符串进行切片。
要测试:
var num=12;
console.log(("000" + num).slice(-4)); // Will show "0012"
当然,这只适用于最多4位的正整数。一个稍微复杂一点的解决方案,将处理正整数:
'0'.repeat( Math.max(4 - num.toString().length, 0)) + num
通过重复添加零来创建字符串,只要数字的数量(字符串的长度)小于4就添加数字,然后将其转换为字符串。
发布于 2009-07-14 20:51:51
我不认为JavaScript语言中有任何“内置”的东西可以做到这一点。下面是一个执行此操作的简单函数:
function FormatNumberLength(num, length) {
var r = "" + num;
while (r.length < length) {
r = "0" + r;
}
return r;
}
FormatNumberLength(10000, 5) outputs '10000'
FormatNumberLength(1000, 5) outputs '01000'
FormatNumberLength(100, 5) outputs '00100'
FormatNumberLength(10, 5) outputs '00010'
https://stackoverflow.com/questions/1127905
复制相似问题