String.Format an integer to use a thousands separator without decimal places or leading 0 for small integers

C#String Formatting

C# Problem Overview


Silly question, I want to format an integer so that it appears with the 1000's separator (,), but also without decimal places and without a leading 0.

My attempts so far have been:

String.Format("{0} {1}", 5, 5000);            // 5 5000
String.Format("{0:n} {1:n}", 5, 5000);        // 5.00 5,000.00
String.Format("{0:0,0} {1:0,0}", 5, 5000);    // 05 5,000

The output I'm after is:

5 5,000

Is there something obvious that I'm missing?

C# Solutions


Solution 1 - C#

This worked for me.

String.Format("{0:#,0} {1:#,0}", 5, 5000); // 5 5,000

Solution 2 - C#

Try this:-

String.Format("{0:n0}",5000) // 5,000
String.Format("{0:n0}",5) // 5
String.Format("{0:n0}",0) // 0

Solution 3 - C#

String.Format("{0:#,0} {1:#,0}", 5, 5000); // "5 5,000"
  • 0 in a format string means put the digit that belongs here, or else a [leading/trailing] zero [to make things align, etc.]. EDIT: You'll definitely want one as the last digit in the pattern, or a zero value will be rendered as an empty String
  • # means don't put anything into the output unless there's a significant digit here.

EDIT (thanks @eulerfx):

  • the last portion needs to be a 0 rather than a # (as I initially had it) as a value of zero would otherwise be rendered as a zero-length string.

Solution 4 - C#

Try

String.Format("{0:#,#}", 4000);

Solution 5 - C#

This also works:

40000.ToString("#,#")

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionJustinView Question on Stackoverflow
Solution 1 - C#Richard FriendView Answer on Stackoverflow
Solution 2 - C#ZafarYousafiView Answer on Stackoverflow
Solution 3 - C#Ruben BartelinkView Answer on Stackoverflow
Solution 4 - C#AnaxView Answer on Stackoverflow
Solution 5 - C#Marco van der SlotView Answer on Stackoverflow