【发布时间】:2011-06-02 21:38:32
【问题描述】:
在 C# 中,每当我想打印我使用过的两位数字时
int digit=1;
Console.Write(digit.ToString("00"));
如何在 Javascript 中执行相同的操作?
谢谢
【问题讨论】:
标签: javascript string formatting
在 C# 中,每当我想打印我使用过的两位数字时
int digit=1;
Console.Write(digit.ToString("00"));
如何在 Javascript 中执行相同的操作?
谢谢
【问题讨论】:
标签: javascript string formatting
c# digit.toString("00") 在digit 的左侧附加一个零(左侧填充)。在 javascript 中,我使用这个函数:
function zeroPad(nr,base){
var len = (String(base).length - String(nr).length)+1;
return len > 0? new Array(len).join('0')+nr : nr;
}
zeroPad(1,10); //=> 01
zeroPad(1,100); //=> 001
zeroPad(1,1000); //=> 0001
您也可以将其重写为 Number 的扩展:
Number.prototype.zeroPad = Number.prototype.zeroPad ||
function(base){
var nr = this, len = (String(base).length - String(nr).length)+1;
return len > 0? new Array(len).join('0')+nr : nr;
};
//usage:
(1).zeroPad(10); //=> 01
(1).zeroPad(100); //=> 001
(1).zeroPad(1000); //=> 0001
[编辑 oct. 2021]
一个静态的 es20xx Number 方法,也适用于负数。
Number.padLeft = (nr, len = 2, padChr = `0`) =>
`${nr < 0 ? `-` : ``}${`${Math.abs(nr)}`.padStart(len, padChr)}`;
console.log(Number.padLeft(3));
console.log(Number.padLeft(284, 5));
console.log(Number.padLeft(-32, 12));
console.log(Number.padLeft(-0)); // Note: -0 is not < 0
【讨论】:
padStart 所做的,主要浏览器都支持。 developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…
我通常只是做类似的事情
("00000000"+nr).slice(-base) 其中nr 是数字,base 是您想要结束的位数。
【讨论】:
一种方法是下载sprintf for javascript 并编写如下内容:
int i = 1;
string s = sprintf("%02d", i);
document.write(s); // Prints "01"
【讨论】:
var num =10
document.write(num);
但如果您的问题是两次使用两位数字,那么您可以使用这个
var num1 = 10;
var num2 = 20;
var resultStr = string.concat(num1,num2);
document.write(resultStr);
...
Result: 1020
如果你想要一个空格,
var resultStr = string.concat(num1,"",num2);
希望这会有所帮助...
【讨论】:
i=1 ==> "01" 的东西)