首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在javascript中将整数格式化为特定长度?

如何在javascript中将整数格式化为特定长度?
EN

Stack Overflow用户
提问于 2009-07-15 04:42:13
回答 14查看 109.6K关注 0票数 67

我在Javascript中有一个数字,我知道它小于10000,而且也是非负的。我想将它显示为一个四位数的数字,并带有前导零。有什么比下面的更优雅的吗?

代码语言:javascript
复制
if(num<10) num="000"+num;
else if(num<100) num="00"+num;
else if(num<1000) num="0"+num;

我想要一些内置在Javascript中的东西,但我似乎找不到任何东西。

EN

回答 14

Stack Overflow用户

回答已采纳

发布于 2018-04-06 00:50:32

因为可以使用String.prototype.padStartString.prototype.padEnd简单地将ES2017填充到最小长度

代码语言:javascript
复制
let num = 3
let str = num.toString().padStart(3, "0")
console.log(str) // "003"

或者,如果浮点数的整个部分应该是固定的长度:

代码语言:javascript
复制
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"
票数 68
EN

Stack Overflow用户

发布于 2015-04-24 04:00:53

我能想到的最简单的方法是:

代码语言:javascript
复制
("000" + num).slice(-4)

填充的数字是一个字符串。

将数字添加到字符串时,该数字将转换为字符串。

string具有方法slice,该方法返回字符串的一段固定长度。

如果length为负,则从字符串的末尾开始对返回的字符串进行切片。

要测试:

代码语言:javascript
复制
var num=12;
console.log(("000" + num).slice(-4)); // Will show "0012"

当然,这只适用于最多4位的正整数。一个稍微复杂一点的解决方案,将处理正整数:

代码语言:javascript
复制
'0'.repeat( Math.max(4 - num.toString().length, 0)) + num

通过重复添加零来创建字符串,只要数字的数量(字符串的长度)小于4就添加数字,然后将其转换为字符串。

票数 105
EN

Stack Overflow用户

发布于 2009-07-14 20:51:51

我不认为JavaScript语言中有任何“内置”的东西可以做到这一点。下面是一个执行此操作的简单函数:

代码语言: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'
票数 45
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1127905

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档