Some examples and tips on C# number formatting using string.Format() or .ToString() methods.
Use "." (point) for set the position of the decimal separetor and "," (comma) for thousand separator.
double number = 1234.56;
string.Format("{0:0.000}", number) // 1234.560
string.Format("{0:#,0.00}", number) // 1,234.56
string.Format("{0:#,0.####}", number) // 1,234.56
// Thousand separator and number scaling
string.Format("{0:#,0}", 123000000) // 123,000,000
string.Format("{0:#,0, K}", 123000000) // 123,000 K
string.Format("{0:#,0,, M}", 123000000) // 123 M
It's possible provide different format for positivie, negative and zero-value number by separating differet format with ";" character.
double number = 1234.56;
double numberNeg = -1234.56;
double numberZero = 0;
string.Format("{0:0.00}", number) // 1234.56
string.Format("{0:0.00}", numberNeg) // -1234.56
string.Format("{0:0.00}", numberZero) // 0.00
string.Format("{0:0.00;(0.00);0}", number) // 1234.56
string.Format("{0:0.00;(0.00);0}", numberNeg) // (1234.56)
string.Format("{0:0.00;(0.00);0}", numberZero) // 0
string.Format("{0:0.00;'neg: '-0.00;zero}", numberNeg) // neg: -1234.56
string.Format("{0:0.00;'neg: '-0.00;zero}", numberZero) // zero
Any characters not used by the formatter is reported in the result string. If you need to enter text with reserved characters that must be inserted between two ' (single quote).
double numberNeg = -1234.56;
// unescaped text
string.Format("{0:0.00 Number}", number) // 1234.56 Number
string.Format("{0:0.00 #Num.}", number) // 1234.56 Num
// escaped text
string.Format("{0:0.00 '#Num.'}", number) // 1234.56 #Num.
A simple tool for test your format string.