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
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
Feel free to comment if you can add help to this page or point out issues and solutions you have found. I do not provide support on this site, if you need help with a problem head over to stack overflow.