In this post I am going to show you a few different ways how you can format a decimal number (float, double, or decimal).
Setting the Maximum Allowed Decimal Places
To format your numbers to a maximum of two decimal places use the format string {0:0.##} as shown in the below example:
string.Format("{0:0.##}", 256.583); // "256.58"
string.Format("{0:0.##}", 256.586); // "256.59"
string.Format("{0:0.##}", 256.58); // "256.58"
string.Format("{0:0.##}", 256.5); // "256.5"
string.Format("{0:0.##}", 256.0); // "256"
Setting a Fixed Amount of Decimal Places
This is similar to the above example but instead of hashes (‘#’) in our format string we are going to use zeroes (’0′) as shown below:
string.Format("{0:0.00}", 256.583); // "256.58"
string.Format("{0:0.00}", 256.586); // "256.59"
string.Format("{0:0.00}", 256.58); // "256.58"
string.Format("{0:0.00}", 256.5); // "256.50"
string.Format("{0:0.00}", 256.0); // "256.00"
The Thousand Separator
To format your decimal number using the thousand separator, use the format string {0:0,0} as shown in the below example:
string.Format("{0:0,0.00}", 1234256.583); // "1,234,256.58"
string.Format("{0:0,0}", 1234256.583); // "1,234,257"
Setting a Fixed Amount of Digits Before the Decimal Point
To set a minimum amount of three digits before the decimal point use the format string {0:000.##}.
string.Format("{0:00.000}", 1.2345); // "01.235"
string.Format("{0:000.000}", 12.345); // "012.345"
string.Format("{0:0000.000}", 123.456); // "0123.456"
Alignment
To specify alignment to the Format method you must write your format string as shown below. Note we are using a comma (‘,’) to specify the number of characters used for alignment.
{0,[no. of chars]} and if you want to pad with zeroes {0,[no. of chars]:00.00}
string.Format("{0,7:##.00}", 2.356); // " 2.36"
string.Format("{0,-7:##.00}", 2.356); // "2.36 "
string.Format("{0,7:00.00}", 2.356); // " 02.36"
string.Format("{0,-7:00.00}", 2.356); // "02.36 "
Positive Numbers, Negative Numbers, and Zero
You can include different formats for positive numbers, negative numbers, and zero by using the semicolon character (‘;’).
Format string:
{0:[positive];[negative];[zero]}
string.Format("{0:000.000;(000.000);zero}", 23.43); // "023.430"
string.Format("{0:000.000;(000.000);zero}", -23.43); // "(023.430)"
string.Format("{0:000.000;(000.000);zero}", 0.0); // "zero"
Some Pre-Defined Formats
string.Format("{0:C}", 1532.236); // "£1,532.24"
string.Format("{0:C}", -1532.236); // "-£1,532.24"
string.Format("{0:E}", 1532.236); // "1.532236E+003"
string.Format("{0:E}", -1532.236); // "-1.532236E+003"
string.Format("{0:F}", 1532.24); // "1532.24"
string.Format("{0:F}", -1532.24); // "-1532.24"
string.Format("{0:G}", 1532.236); // "1532.236"
string.Format("{0:G}", -1532.236); // "-1532.236"
string.Format("{0:N}", 1532.236); // "1,532.24"
string.Format("{0:N}", -1532.236); // "-1,532.24"
string.Format("{0:P}", 0.1532); // "15.32 %"
string.Format("{0:P}", -0.1532); // "-15.32 %"
string.Format("{0:R}", 1532.236); // "1532.236"
string.Format("{0:R}", -1532.236); // "-1532.236"
Happy formatting. ![]()
Dave
My name is David Azzopardi and I'm a software developer by profession. I have been working in the software industry for around eight years now and I have learned a few things through my experiences.