Display Values With Decimal Places

When formatting numbers you can use “0” as mandatory place and “#” as optional place.

	String::Format("{0:0.####}", 123.4567);    //Gives: "123.4667"
	String::Format("{0:0.##}", 123.4567);      //Gives: "123.46"
	String::Format("{0:0.##}", 123.4);         //Gives: "123.4"
	String::Format("{0:0.##}", 123.0);         //Gives: "123"

	String::Format("{0:0.0#}", 123.4567)       //Gives: "123.46"
	String::Format("{0:0.0#}", 123.4)          //Gives: "123.4"
	String::Format("{0:0.0#}", 123.0)          //Gives: "123.0"

Display Decimal Value

	MyString = String::Format("{0:D}", MyVariable);
	MyString = String::Format("{0:D6}", MyVariable);	//D6 formats value to 6 digits, inserting leading zero's if necessary

Display Decimal Places

	MyString = String::Format("{0:F}", MyVariable);
	MyString = String::Format("{0:F3}", MyVariable);	//D3 formats value to 3 decimal places, inserting trailing zero's if necessary

Display Hex Value

	MyString = "0x" + String::Format("{0:X2}", MyVariable);		//This adds value formatted as hex with 2 digits and with 0x before it

	MyString = "0x" + String::Format("{0:X}", 123456);	//X formats to hexadecimal
	MyString = "0x" + String::Format("{0:X6}", 123456);	//

Display Binary Value

	sTemp = Convert::ToString(10, 2);
	txtInputs0->Text = sTemp->PadLeft(8, '0');

Display Software Version Typical Solution

	MyString = "V:" + Convert::ToString(FirmVer >> 8) + "." + Convert::ToString(String::Format("{0:D2}", (FirmVer & 0x00ff)));

Display DateTime

Link to all format codes

	MyString = String::Format("{0:dd/MM/yyyy HH:mm:ss}", MyDateTime);

Good Examples

int neg = -10;
int pos = 10;

// C or c (Currency): It represent how many decimal place of zeros to show.
String::Format("{0:C4}", pos);      //"$10.0000"
String::Format("{0:C4}", neg);      //"($10.0000)"

// D or d (Decimal): It represent leading zeros
String::Format("{0:D4}", pos);      //"0010"
String::Format("{0:D4}", neg);      //"-0010"

// E or e (Exponential): It represent how many decimal places of zeros to show.
String::Format("{0:E4}", pos);      //"1.0000E+001"
String::Format("{0:E4}", neg);      //"-1.0000E+001"

// F or f (Fixed-point): It represent how many decimal places of zeros to show.
String::Format("{0:F4}", pos);      //"10.0000"
String::Format("{0:F4}", neg);      //"-10.0000"

// G or g (General): This does nothing
String::Format("{0:G4}", pos);      //"10"
String::Format("{0:G4}", neg);      //"-10"

// N or n (Number): It represent how many decimal places of zeros to show.
String::Format("{0:N4}", pos);      //"10.0000"
String::Format("{0:N4}", neg);      //"-10.0000"

// P or p (Percent): It represent how many decimal places of zeros to show.
String::Format("{0:P4}", pos);      //"1,000.0000%"
String::Format("{0:P4}", neg);      //"-1,000.0000%"

// R or r (Round-Trip): This is invalid, FormatException is thrown.
String::Format("{0:R4}", pos);      //FormatException thrown
String::Format("{0:R4}", neg);      //FormatException thrown

// X or x (Hex): It represent leading zeros
String::Format("{0:X4}", pos);      //"000A"
String::Format("{0:X4}", neg);      //"FFFFFFF6"

// nothing: This is invalid, no exception is thrown.
String::Format("{0:4}", pos));      //"4"
String::Format("{0:4}", neg));      //"-4"

http://blogs.msdn.com/b/kathykam/archive/2006/03/29/564426.aspx

Another Example

int main(void)
{
    // Format a negative integer or floating-point number in
    // various ways.
    Console::WriteLine("Standard Numeric Format Specifiers");
    resultString = String::Format(CultureInfo::CurrentCulture,
        "(C) Currency: . . . . . . . . {0:C}\n" +
        "(D) Decimal:. . . . . . . . . {0:D}\n" +
        "(E) Scientific: . . . . . . . {1:E}\n" +
        "(F) Fixed point:. . . . . . . {1:F}\n" +
        "(G) General:. . . . . . . . . {0:G}\n" +
        "    (default):. . . . . . . . {0} (default = 'G')\n" +
        "(N) Number: . . . . . . . . . {0:N}\n" +
        "(P) Percent:. . . . . . . . . {1:P}\n" +
        "(R) Round-trip: . . . . . . . {1:R}\n" +
        "(X) Hexadecimal:. . . . . . . {0:X}\n",
        -123, -123.45f);
    Console::WriteLine(resultString);

    // Format the current date in various ways.
    Console::WriteLine("Standard DateTime Format Specifiers");
    resultString = String::Format(CultureInfo::CurrentCulture,
        "(d) Short date: . . . . . . . {0:d}\n" +
        "(D) Long date:. . . . . . . . {0:D}\n" +
        "(t) Short time: . . . . . . . {0:t}\n" +
        "(T) Long time:. . . . . . . . {0:T}\n" +
        "(f) Full date/short time: . . {0:f}\n" +
        "(F) Full date/long time:. . . {0:F}\n" +
        "(g) General date/short time:. {0:g}\n" +
        "(G) General date/long time: . {0:G}\n" +
        "    (default):. . . . . . . . {0} (default = 'G')\n" +
        "(M) Month:. . . . . . . . . . {0:M}\n" +
        "(R) RFC1123:. . . . . . . . . {0:R}\n" +
        "(s) Sortable: . . . . . . . . {0:s}\n" +
        "(u) Universal sortable: . . . {0:u} (invariant)\n" +
        "(U) Universal full date/time: {0:U}\n" +
        "(Y) Year: . . . . . . . . . . {0:Y}\n",
        thisDate);
    Console::WriteLine(resultString);

    // Format a Color enumeration value in various ways.
    Console::WriteLine("Standard Enumeration Format Specifiers");
    resultString = String::Format(CultureInfo::CurrentCulture,
        "(G) General:. . . . . . . . . {0:G}\n" +
        "    (default):. . . . . . . . {0} (default = 'G')\n" +
        "(F) Flags:. . . . . . . . . . {0:F} (flags or integer)\n" +
        "(D) Decimal number: . . . . . {0:D}\n" +
        "(X) Hexadecimal:. . . . . . . {0:X}\n",
        Color::Green);
    Console::WriteLine(resultString);
};

This code example produces the following results:

Standard Numeric Format Specifiers
(C) Currency: . . . . . . . . ($123.00)
(D) Decimal:. . . . . . . . . -123
(E) Scientific: . . . . . . . -1.234500E+002
(F) Fixed point:. . . . . . . -123.45
(G) General:. . . . . . . . . -123
(default):. . . . . . . . -123 (default = 'G')
(N) Number: . . . . . . . . . -123.00
(P) Percent:. . . . . . . . . -12,345.00 %
(R) Round-trip: . . . . . . . -123.45
(X) Hexadecimal:. . . . . . . FFFFFF85

Standard DateTime Format Specifiers
(d) Short date: . . . . . . . 6/26/2004
(D) Long date:. . . . . . . . Saturday, June 26, 2004
(t) Short time: . . . . . . . 8:11 PM
(T) Long time:. . . . . . . . 8:11:04 PM
(f) Full date/short time: . . Saturday, June 26, 2004 8:11 PM
(F) Full date/long time:. . . Saturday, June 26, 2004 8:11:04 PM
(g) General date/short time:. 6/26/2004 8:11 PM
(G) General date/long time: . 6/26/2004 8:11:04 PM
(default):. . . . . . . . 6/26/2004 8:11:04 PM (default = 'G')
(M) Month:. . . . . . . . . . June 26
(R) RFC1123:. . . . . . . . . Sat, 26 Jun 2004 20:11:04 GMT
(s) Sortable: . . . . . . . . 2004-06-26T20:11:04
(u) Universal sortable: . . . 2004-06-26 20:11:04Z (invariant)
(U) Universal full date/time: Sunday, June 27, 2004 3:11:04 AM
(Y) Year: . . . . . . . . . . June, 2004

Standard Enumeration Format Specifiers
(G) General:. . . . . . . . . Green
(default):. . . . . . . . Green (default = 'G')
(F) Flags:. . . . . . . . . . Green (flags or integer)
(D) Decimal number: . . . . . 3
(X) Hexadecimal:. . . . . . . 00000003
USEFUL?
We benefit hugely from resources on the web so we decided we should try and give back some of our knowledge and resources to the community by opening up many of our company’s internal notes and libraries through mini sites like this. We hope you find the site helpful.
Please feel free to comment if you can add help to this page or point out issues and solutions you have found, but please note that we do not provide support on this site. If you need help with a problem please use one of the many online forums.