Randika
Randika

Reputation: 23

how to add zeros for integer variable

I'm very new to c# programming. I want to know how to add leading zeros for a integer type in c#.

ex:

int value = 23;

I want to use it like this ;

0023

Thanks in advance

Upvotes: 2

Views: 10679

Answers (4)

TomTom
TomTom

Reputation: 62101

This is not a programming issue. Numbers have no leading zeroes.

There are two things here that you can do:

  • If it is a number, then format it on the way out.

  • If it is something like a code (article number etc.) - those are NOT NUMBERS.

The second point is important. Things like social security numbers, part numbers etc. are strings - with only numeric characters allowed. You never add or subtract them and you must be prepared for format changes. They are not integers or any other number form to start with.

Upvotes: 0

Santhosh
Santhosh

Reputation: 729

Integer wont accept leading zeros, it will only hold the real value of the integer. The best we to have leading zeros is to convert it to string.

If you need a 4 digit value always, use the .ToString formatting to add leading 0's.

int value = 23;
var result = value.ToString("0000");

or if you want to have a leading 00 to any number, better append 00 to the string equivalent of the integer.

int value = 23;
var result = "00" + value.ToString();

Upvotes: 2

Mlarnt90
Mlarnt90

Reputation: 186

Basically you want to add padding zeros.

string format specifier has a very simple method to this.

string valueAfterpadding;
int value = 23;
valueAfterpadding = value.ToString("D4");
Console.WriteLine(valueAfterpadding );

this solve your problem. just google it.

Upvotes: 4

Jon Skeet
Jon Skeet

Reputation: 1500805

You can't. There's no such contextual information in an int. An integer is just an integer.

If you're talking about formatting, you could use something like:

string formatted = value.ToString("0000");

... that will ensure there are at least 4 digits. (A format string of "D4" will have the same effect.) But you need to be very clear in your mind that this is only relevant in the string representation... it's not part of the integer value represented by value. Similarly, value has no notion of whether it's in decimal or hex - again, that's a property of how you format it.

(It's really important to understand this in reasonably simple cases like this, as it tends to make a lot more difference for things like date/time values, which again don't store any formatting information, and people often get confused.)

Note that there's one type which may surprise you: decimal. While it doesn't consider leading zeroes, it does have a notion of trailing zeroes (implicitly in the way it's stored), so 1.0m and 1.00m are distinguishable values.

Upvotes: 10

Related Questions