| only for RuBoard - do not distribute or recompile |
Table C-1 lists the numeric format specifiers supported by the ToString method on the predefined numeric types (see Chapter 3).
|
Specifier |
String result |
Data type |
|---|---|---|
|
C[n] |
$XX,XX.XX ($XX,XXX.XX) |
Currency |
|
D[n] |
[-]XXXXXXX |
Decimal |
|
E[n] or e[n] |
[-]X.XXXXXXE+xxx [-]X.XXXXXXe+xxx [-]X.XXXXXXE-xxx [-]X.XXXXXXe-xxx |
Exponent |
|
F[n] |
[-]XXXXXXX.XX |
Fixed point |
|
G[n] |
General or scientific |
General |
|
N[n] |
[-]XX,XXX.XX |
Number |
|
P[n] |
[-]XX,XXX.XX % |
Percent |
|
R |
Round-trip format |
Floating point |
|
X[n] or x[n] |
Hex representation |
Hex |
This is an example that uses numeric format specifiers without precision specifiers:
using System;
class TestDefaultFormats {
static void Main( ) {
int i = 654321;
Console.WriteLine("{0:C}", i); // $654,321.00
Console.WriteLine("{0:D}", i); // 654321
Console.WriteLine("{0:E}", i); // 6.543210E+005
Console.WriteLine("{0:F}", i); // 654321.00
Console.WriteLine("{0:G}", i); // 654321
Console.WriteLine("{0:N}", i); // 654,321.00
Console.WriteLine("{0:P}", i); // 65,432,100.00 %
Console.WriteLine("{0:P}", .42); // 42.00 %
Console.WriteLine("{0:X}", i); // 9FBF1
Console.WriteLine("{0:x}", i); // 9fbf1
// Round-trip conversions
string s1 = Math.PI.ToString("G");
Console.WriteLine(s1); // 3.14159265358979
string s2 = Math.PI.ToString("R");
Console.WriteLine(s2); // 3.1415926535897931
Console.WriteLine(Math.PI == Double.Parse(s1)); // False
Console.WriteLine(Math.PI == Double.Parse(s2)); // True
}
}
This is an example that uses numeric format specifiers with precision specifiers on a variety of int values:
using System;
class TestIntegerFormats {
static void Main( ) {
int i = 123;
Console.WriteLine("{0:C6}", i); // $123.000000
Console.WriteLine("{0:D6}", i); // 000123
Console.WriteLine("{0:E6}", i); // 1.230000E+002
Console.WriteLine("{0:G6}", i); // 123
Console.WriteLine("{0:N6}", i); // 123.000000
Console.WriteLine("{0:P6}", i); // 12,300.000000 %
Console.WriteLine("{0:X6}", i); // 00007B
i = -123;
Console.WriteLine("{0:C6}", i); // ($123.000000)
Console.WriteLine("{0:D6}", i); // -000123
Console.WriteLine("{0:E6}", i); // -1.230000E+002
Console.WriteLine("{0:G6}", i); // -123
Console.WriteLine("{0:N6}", i); // -123.000000
Console.WriteLine("{0:P6}", i); // -12,300.000000 %
Console.WriteLine("{0:X6}", i); // FFFF85
i = 0;
Console.WriteLine("{0:C6}", i); // $0.000000
Console.WriteLine("{0:D6}", i); // 000000
Console.WriteLine("{0:E6}", i); // 0.000000E+000
Console.WriteLine("{0:G6}", i); // 0
Console.WriteLine("{0:N6}", i); // 0.000000
Console.WriteLine("{0:P6}", i); // 0.000000 %
Console.WriteLine("{0:X6}", i); // 000000
}
}
Here's an example that uses numeric format specifiers with precision specifiers on a variety of double values:
using System;
class TestDoubleFormats {
static void Main( ) {
double d = 1.23;
Console.WriteLine("{0:C6}", d); // $1.230000
Console.WriteLine("{0:E6}", d); // 1.230000E+000
Console.WriteLine("{0:G6}", d); // 1.23
Console.WriteLine("{0:N6}", d); // 1.230000
Console.WriteLine("{0:P6}", d); // 123.000000 %
d = -1.23;
Console.WriteLine("{0:C6}", d); // ($1.230000)
Console.WriteLine("{0:E6}", d); // -1.230000E+000
Console.WriteLine("{0:G6}", d); // -1.23
Console.WriteLine("{0:N6}", d); // -1.230000
Console.WriteLine("{0:P6}", d); // -123.000000 %
d = 0;
Console.WriteLine("{0:C6}", d); // $0.000000
Console.WriteLine("{0:E6}", d); // 0.000000E+000
Console.WriteLine("{0:G6}", d); // 0
Console.WriteLine("{0:N6}", d); // 0.000000
Console.WriteLine("{0:P6}", d); // 0.000000 %
}
}
| only for RuBoard - do not distribute or recompile |