【问题标题】:How can I create a zero-padded string representation of a number in an arbitrary base? [duplicate]如何在任意基数中创建数字的零填充字符串表示? [复制]
【发布时间】:2009-08-16 05:25:07
【问题描述】:

可能重复:
How can I create a Zerofilled value using JavaScript?

当我使用 JavaScript 将 # 从以 10 为底的十六进制转换为以 16 为底的十六进制时,它不会对数字进行零填充。

例如:

var myBaseTenNumber = 0;
myBaseTenNumber.toString(16);  // should be 00 but it's just 0

有什么简单的方法可以将我的号码补零,使其长度为 2 位数?

【问题讨论】:

标签: javascript


【解决方案1】:

一般是这样的

如果您预先知道长度,您可以这样做(类似):

var temp = myBaseTenNumber.toString(16);
("00" + myBaseTenNumber.toString(16)).substring(2 - temp.length, 2);

【讨论】:

  • 记住你可以使用.substr(-2) 作为最后两位数。
  • 老实说,我不同意“重复”标志。这有一个非常简洁的解决方案,与一般的填充问题绝对无关。这适用于任何基数的无符号整数,maxPad 是输出字符串长度。它显然需要首先检查输入数字,看看它是否超过转换后的最大长度 ((Math.pow(base,maxPad) + number)).toString(base).slice(1, maxPad +1)
  • 解决方案中的第二行是否应该不是 '("00" + myBaseTenNumber.toString(16)).substring(temp.length);' ?
  • ("00" + x.toString(16)).slice(-2)
  • @malber 但这与那里的第二个答案相同。只是有 2 个而不是 5 个零。
猜你喜欢
  • 2010-09-24
  • 2013-12-11
  • 1970-01-01
  • 2014-05-13
  • 1970-01-01
  • 1970-01-01
  • 2023-03-31
  • 2011-05-27
  • 2011-12-02
相关资源
最近更新 更多