在.NET中给数字前面添加零

38

我有一个要求,需要在所有的个位数前添加零。请问有什么最好的方法?(例如 1 -> 01, 2 -> 02,等等)


你是如何输出它们的?例如,如果你将它们绑定到ASP.NET中的控件上,可能有一种更简单的方法来应用格式字符串。 - bdukes
5个回答

79
number.ToString().PadLeft(2, '0')

11
因为这个解决方案具有自述性,表达意图比格式提供程序("00")更清晰,所以我点赞了。 - Tim

66

我会调用数字的.ToString方法,提供一个格式字符串,该字符串要求两个数字位数,如下所示:

int number = 1;
string paddedNumber = number.ToString("00");

如果它是一个较大字符串的一部分,你可以在占位符中使用格式化字符串:

string result = string.Format("{0:00} minutes remaining", number);

6
假设你只是输出这些值,而不是存储它们。
int number = 1;
Console.Writeline("{0:00}", number);

这里有一个关于 .Net 支持的所有格式的有用资源


3

我将作为答案添加此选项,因为我没有看到它在这里,并且作为替代方案可能有用。

在VB.NET中:

''2 zeroes left pad
Dim num As Integer = 1
Dim numStr2ch As String = Strings.Right("00" & num.ToString(), 2)

''4 zeroes left pad
Dim numStr4ch As String = Strings.Right("0000" & num.ToString(), 4)

''6 zeroes left pad
Dim numStr6ch As String = Strings.Right("000000" & num.ToString(), 6)

-1
# In PowerShell:

$year = 2013
$month = 5
$day = 8

[string] $datestamp = [string]::Format("{0:d4}{1:d2}{2:d2}", $year, $month, $day)
Write-Host "Hurray, hurray, it's $datestamp!"

2
程序员问为什么给他PowerShell,而不是vb.net - c-sharp-and-swiftui-devni

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接