Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#将int转换为带填充零的字符串?_C#_Formatting_Number Formatting - Fatal编程技术网

C#将int转换为带填充零的字符串?

C#将int转换为带填充零的字符串?,c#,formatting,number-formatting,C#,Formatting,Number Formatting,在C#中,我有一个整数值,需要转换为字符串,但它需要在以下值之前加上零: 例如: int i = 1; 当我将其转换为字符串时,它需要变成0001 我需要知道C#.I.ToString().PadLeft(4,'0')中的语法-好的,但不适用于负数 i.ToString(“0000”)-显式格式 i.ToString(“D4”)-简短格式说明符 $“{i:0000}”-字符串插值(C#6.0+)您可以使用: int x = 1; x.ToString("0000"); 请参见关于格式说明符的

在C#中,我有一个整数值,需要转换为字符串,但它需要在以下值之前加上零:

例如:

int i = 1;
当我将其转换为字符串时,它需要变成0001

我需要知道C#.

I.ToString().PadLeft(4,'0')中的语法-好的,但不适用于负数
i.ToString(“0000”)-显式格式
i.ToString(“D4”)-简短格式说明符
$“{i:0000}”-字符串插值(C#6.0+)

您可以使用:

int x = 1;
x.ToString("0000");
请参见关于格式说明符的说明。

以下是一个很好的示例:

int number = 1;
//D4 = pad with 0000
string outputValue = String.Format("{0:D4}", number);
Console.WriteLine(outputValue);//Prints 0001
//OR
outputValue = number.ToString().PadLeft(4, '0');
Console.WriteLine(outputValue);//Prints 0001 as well
简单地


要填充
int i
以匹配
int x
的字符串长度,当两者都可以为负值时:

i.ToString().PadLeft((int)Math.Log10(Math.Abs(x < 0 ? x * 10 : x)) + 1, '0')
i.ToString()
C#6.0风格的字符串插值

int i = 1;
var str1 = $"{i:D4}";
var str2 = $"{i:0000}";

这里我想用4位数字填充我的号码。例如,如果它是1,那么 它应显示为0001,如果为11,则应显示为0011

以下是完成此操作的代码:

reciptno=1; // Pass only integer.

string formatted = string.Format("{0:0000}", reciptno);

TxtRecNo.Text = formatted; // Output=0001
我实现了这段代码以生成PDF文件的收款编号。

Easy peasy

int i = 1;
i.ToString("0###")

NET有一个简单的函数,可以在
String
类中实现这一点。 只需使用:

.ToString().PadLeft(4, '0')  // that will fill your number with 0 on the left, up to 4 length

int i = 1; 
i.toString().PadLeft(4,'0')  // will return "0001"  

还有第二种使用相同格式字符串的方法:
string.format(“{0:0000}”,x)
这可能会帮助您-。好的lucki.ToString()。PadLeft(4,'0')不适用于负数,例如(-5)。PadLeft(4,'0')将是“00-5”。如何显示固定长度的字符串@Rahul读到:这种方法对我来说是有效的String.Format(“{0:D4}”,number);使用字符串格式快捷方式也可以工作,例如$“{i:D4}”;这种方法适用于我的String.Format(“{0:D4}”,number);为什么你们要编辑我的答案只是为了大写字母或句子结构。有必要吗?开发人员应该关注代码而不是句子structure@Unheilig我是stackoverflow的新手。我想当你编辑我的答案时,我的观点会降低。正如你指出的,你是这个社区的新手,不熟悉编辑系统,社区建议并批准的编辑不会使您失去任何分数。所做的编辑实际上大大改进了您的回答投票实际上是匿名的。由于语法不好,投了反对票。如果您接受了针对负数的编辑建议,则会投赞成票。修复了不必要的复杂问题,尤其是在有非常简单的解决方案时。不知道为什么您投反对票它有效,并回答了ops问题。这一个看起来很不错。避免在文本“
后出现一些文本{x.ToStrig(“D4”)}的好方法如果字符串的长度固定且数字发生变化,则此方法有效。谢谢你!:)int i=1002;string str=i.ToString().PadLeft(4,'0');//返回“1002”:
int p = 3; // fixed length padding
int n = 55; // number to test

string t = n.ToString("D" + p); // magic     

Console.WriteLine("Hello, world! >> {0}", t);

// outputs: 
// Hello, world! >> 055
reciptno=1; // Pass only integer.

string formatted = string.Format("{0:0000}", reciptno);

TxtRecNo.Text = formatted; // Output=0001
int i = 1;
i.ToString("0###")
.ToString().PadLeft(4, '0')  // that will fill your number with 0 on the left, up to 4 length

int i = 1; 
i.toString().PadLeft(4,'0')  // will return "0001"  
public static string ToLeadZeros(this int strNum, int num)
{
    var str = strNum.ToString();
    return str.PadLeft(str.Length + num, '0');
}

// var i = 1;
// string num = i.ToLeadZeros(5);