The following examples show how to format float numbers to string in C#. You can use static method
String.Format or instance methods
double.ToString and
float.ToString.
Digits after decimal point
This example formats double to string with
fixed number of decimal places. For two decimal places use pattern „
0.00“. If a float number has less decimal places, the rest digits on the right will be zeroes. If it has more decimal places, the number will be rounded.
[C#]
String.Format("{0:0.00}", 123.4567);
String.Format("{0:0.00}", 123.4);
String.Format("{0:0.00}", 123.0);
Next example formats double to string with
floating number of decimal places. E.g. for maximal two decimal places use pattern „
0.##“.
[C#]
String.Format("{0:0.##}", 123.4567);
String.Format("{0:0.##}", 123.4);
String.Format("{0:0.##}", 123.0);
Digits before decimal point
If you want a float number to have any
minimal number of digits before decimal point use N-times zero before decimal point. E.g. pattern „
00.0“ formats a float number to string with at least two digits before decimal point and one digit after that.
[C#]
String.Format("{0:00.0}", 123.4567);
String.Format("{0:00.0}", 23.4567);
String.Format("{0:00.0}", 3.4567);
String.Format("{0:00.0}", -3.4567);
Thousands separator
To format double to string
with use of thousands separator use zero and comma separator before an usual float formatting pattern, e.g. pattern „
0,0.0“ formats the number to use thousands separators and to have one decimal place.
[C#]
String.Format("{0:0,0.0}", 12345.67);
String.Format("{0:0,0}", 12345.67);
Zero
Float
numbers between zero and one can be formatted in two ways, with or without leading zero before decimal point. To format number without a leading zero use
# before point. For example „
#.0“ formats number to have one decimal place and zero to N digits before decimal point (e.g. „.5“ or „123.5“).
Following code shows
how can be formatted a zero (of double type).
[C#]
String.Format("{0:0.0}", 0.0);
String.Format("{0:0.#}", 0.0);
String.Format("{0:#.0}", 0.0);
String.Format("{0:#.#}", 0.0);
Align numbers with spaces
To align float number
to the right use comma „
,“ option before the colon. Type comma followed by a number of spaces, e.g. „
0,10:0.0“ (this can be used only in
String.Format method, not in
double.ToString method). To align numbers
to the left use negative number of spaces.
[C#]
String.Format("{0,10:0.0}", 123.4567);
String.Format("{0,-10:0.0}", 123.4567);
String.Format("{0,10:0.0}", -123.4567);
String.Format("{0,-10:0.0}", -123.4567);
Custom formatting for negative numbers and zero
If you need to use custom format for negative float numbers or zero, use
semicolon separator„
;“ to split pattern to
three sections. The first section formats positive numbers, the
second section formats negative numbers and the third section formats zero. If you omit the last section, zero will be formatted using the first section.
[C#]
String.Format("{0:0.00;minus 0.00;zero}", 123.4567);
String.Format("{0:0.00;minus 0.00;zero}", -123.4567);
String.Format("{0:0.00;minus 0.00;zero}", 0.0);
Some funny examples
As you could notice in the previous example, you can put any text into formatting pattern, e.g. before an usual pattern „
my text 0.0“. You can even put any text between the zeroes, e.g. „
0aaa.bbb0“.
[C#]
String.Format("{0:my number is 0.0}", 12.3);
String.Format("{0:0aaa.bbb0}", 12.3);
ref :
http://www.csharp-examples.net/string-format-double/