Pad with leading zeros [duplicate]
Asked Answered
H

5

98

How can i pad my integer variable with leading zeros. like i have an integer abc with value 20 but i want it to be '0000020'.

Code:

quarterlyReportDataCMMS.QRTrailerRecord.FileRecordCount = Convert.ToInt32(refEligibleClaimants.Count);
Huxley answered 11/8, 2010 at 14:49 Comment(0)
D
151

You can do this with a string datatype. Use the PadLeft method:

var myString = "1";
myString = myString.PadLeft(myString.Length + 5, '0');

000001

Dorian answered 11/8, 2010 at 14:53 Comment(2)
Alternatively, if you wanted fixed number of places where 5 is the total number of placed replaced with 0: myString.PadLeft(5, '0')Yun
Although this answer is useful, it's not the way to do it unless you're starting out with a string.Unmarked
R
161

There's no such concept as an integer with padding. How many legs do you have - 2, 02 or 002? They're the same number. Indeed, even the "2" part isn't really part of the number, it's only relevant in the decimal representation.

If you need padding, that suggests you're talking about the textual representation of a number... i.e. a string.

You can achieve that using string formatting options, e.g.

string text = value.ToString("0000000");

or

string text = value.ToString("D7");
Renatorenaud answered 11/8, 2010 at 14:51 Comment(6)
I tried that but it says Cannot implicitly convert type string to intHuxley
@Ashutosh: No, the point is you want it as a string. There's no such concept as a padded int - an int is just a number.Renatorenaud
@Jon but your code is trying to implicitly convert a string to an int... (int text = value.ToString("000"))Loyceloyd
@Steven: Doh - will fix that. I'm a fool! Apologies to @Huxley and anyone else who tried this. I'll hang my head in shame :(Renatorenaud
@Jon: No problem John..I fixed it somehow. I am a novice in this field who fortunately got an internship, so i am learning all these things to fulfill the expectations. thanksHuxley
@TomGullen plus it is a code name it's entirely the fault of the naming convention :PExsanguine
D
151

You can do this with a string datatype. Use the PadLeft method:

var myString = "1";
myString = myString.PadLeft(myString.Length + 5, '0');

000001

Dorian answered 11/8, 2010 at 14:53 Comment(2)
Alternatively, if you wanted fixed number of places where 5 is the total number of placed replaced with 0: myString.PadLeft(5, '0')Yun
Although this answer is useful, it's not the way to do it unless you're starting out with a string.Unmarked
E
20

An integer value is a mathematical representation of a number and is ignorant of leading zeroes.

You can get a string with leading zeroes like this:

someNumber.ToString("00000000")
Edi answered 11/8, 2010 at 14:51 Comment(0)
T
15

The concept of leading zero is meaningless for an int, which is what you have. It is only meaningful, when printed out or otherwise rendered as a string.

Console.WriteLine("{0:0000000}", FileRecordCount);

Forgot to end the double quotes!

Transmigrant answered 11/8, 2010 at 14:51 Comment(0)
F
15

You can use

String.PadLeft()
String.Format()

Fulfill answered 11/8, 2010 at 14:51 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.