格式字符串 | 区域性 | 数据类型 | 值 | 输出 |
---|---|---|---|---|
C |
en-US |
Double |
12345.6789 |
$12,345.68 |
C |
de-DE |
Double |
12345.678 |
12.345,68 € |
格式字符串 | 区域性 | 数据类型 | 值 | 输出 |
---|---|---|---|---|
D |
en-US |
Int32 |
12345 |
12345 |
D8 |
en-US |
Int32 |
12345 |
00012345 |
格式字符串 | 区域性 | 数据类型 | 值 | 输出 |
---|---|---|---|---|
E |
en-US |
Double |
12345.6789 |
1.234568E+004 |
E10 |
en-US |
Double |
12345.6789 |
1.2345678900E+004 |
E |
fr-FR |
Double |
12345.6789 |
1,234568E+004 |
e4 |
en-US |
Double |
12345.6789 |
1.2346e+004 |
格式字符串 | 区域性 | 数据类型 | 值 | 输出 |
---|---|---|---|---|
F |
en-US |
Double |
12345.6789 |
12345.68 |
F |
es-ES |
Double |
12345.6789 |
12345,68 |
F0 |
en-US |
Double |
12345.6789 |
123456 |
F6 |
en-US |
Double |
12345.6789 |
12345.678900 |
格式字符串 | 区域性 | 数据类型 | 值 | 输出 |
---|---|---|---|---|
G |
en-US |
Double |
12345.6789 |
12345.6789 |
G7 |
en-US |
Double |
12345.6789 |
12345.68 |
G |
en-US |
Double |
0.0000023 |
2.3E-6 |
G |
en-US |
Double |
0.0023 |
0.0023 |
G2 |
en-US |
Double |
1234 |
1.2E3 |
G |
en-US |
Double |
Math.PI |
3.14159265358979 |
格式字符串 | 区域性 | 数据类型 | 值 | 输出 |
---|---|---|---|---|
N |
en-US |
Double |
12345.6789 |
12,345.68 |
N |
sv-SE |
Double |
12345.6789 |
12 345,68 |
N4 |
en-US |
Double |
123456789 |
123,456,789.0000 |
格式字符串 | 区域性 | 数据类型 | 值 | 输出 |
---|---|---|---|---|
P |
en-US |
Double |
.126 |
12.60 % |
格式字符串 | 区域性 | 数据类型 | 值 | 输出 |
---|---|---|---|---|
r |
en-US |
Double |
Math.PI |
3.141592653589793 |
格式字符串 | 区域性 | 数据类型 | 值 | 输出 |
---|---|---|---|---|
x |
en-US |
Int32 |
0x2c45e |
2c45e |
X |
en-US |
Int32 |
0x2c45e |
2C45E |
X8 |
en-US |
Int32 |
0x2c45e |
0002C45E |
x |
en-US |
Int32 |
123456789 |
75bcd15 |
下面的代码示例使用线程当前区域性、指定区域性以及所有标准数字格式对一个整型数值和一个浮点型数值进行格式化。本代码示例使用两种特定数值类型,但对于任一基本数值类型(Byte、SByte、Int16、Int32、Int64、UInt16、UInt64、Decimal、Single 和 Double)将产生类似的结果。
// This code example demonstrates the ToString(String) and // ToString(String, IFormatProvider) methods for integral and // floating-point numbers, in conjunction with the standard // numeric format specifiers. // This code example uses the System.Int32 integral type and // the System.Double floating-point type, but would yield // similar results for any of the numeric types. The integral // numeric types are System.Byte, SByte, Int16, Int32, Int64, // UInt16, UInt32, and UInt64. The floating-point numeric types // are Decimal, Single, and Double. using System; using System.Globalization; using System.Threading; class Sample { public static void Main() { // Format a negative integer or floating-point number in various ways. int integralVal = -12345; double floatingVal = -1234.567d; string msgCurrency = "(C) Currency: . . . . . . "; string msgDecimal = "(D) Decimal:. . . . . . . "; string msgScientific = "(E) Scientific: . . . . . "; string msgFixedPoint = "(F) Fixed point:. . . . . "; string msgGeneral = "(G) General (default):. . "; string msgNumber = "(N) Number: . . . . . . . "; string msgPercent = "(P) Percent:. . . . . . . "; string msgRoundTrip = "(R) Round-trip: . . . . . "; string msgHexadecimal = "(X) Hexadecimal:. . . . . "; string msg1 = "Use ToString(String) and the current thread culture.\n"; string msg2 = "Use ToString(String, IFormatProvider)“ + ” and a specified culture.\n"; string msgCulture = "Culture:"; string msgIntegralVal = "Integral value:"; string msgFloatingVal = "Floating-point value:"; CultureInfo ci; // Console.Clear(); Console.WriteLine("Standard Numeric Format Specifiers:\n"); // Display the values. Console.WriteLine(msg1); // Display the thread current culture, which is used to format the values. ci = Thread.CurrentThread.CurrentCulture; Console.WriteLine("{0,-26}{1}", msgCulture, ci.DisplayName); // Display the integral and floating-point values. Console.WriteLine("{0,-26}{1}", msgIntegralVal, integralVal); Console.WriteLine("{0,-26}{1}", msgFloatingVal, floatingVal); Console.WriteLine(); // Use the format specifiers that are only for integral types. Console.WriteLine("Format specifiers only for integral types:"); Console.WriteLine(msgDecimal + integralVal.ToString("D")); Console.WriteLine(msgHexadecimal + integralVal.ToString("X")); Console.WriteLine(); // Use the format specifier that is only for the Single and Double // floating-point types. Console.WriteLine("Format specifier only for the Single and Double types:"); Console.WriteLine(msgRoundTrip + floatingVal.ToString("R")); Console.WriteLine(); // Use the format specifiers that are for integral or floating-point types. Console.WriteLine("Format specifiers for integral or floating-point types:"); Console.WriteLine(msgCurrency + floatingVal.ToString("C")); Console.WriteLine(msgScientific + floatingVal.ToString("E")); Console.WriteLine(msgFixedPoint + floatingVal.ToString("F")); Console.WriteLine(msgGeneral + floatingVal.ToString("G")); Console.WriteLine(msgNumber + floatingVal.ToString("N")); Console.WriteLine(msgPercent + floatingVal.ToString("P")); Console.WriteLine(); // Display the same values using a CultureInfo object. The CultureInfo class // implements IFormatProvider. Console.WriteLine(msg2); // Display the culture used to format the values. // Create a European culture and change its currency symbol to "euro" because // this particular code example uses a thread current UI culture that cannot // display the euro symbol (€). ci = new CultureInfo("de-DE"); ci.NumberFormat.CurrencySymbol = "euro"; Console.WriteLine("{0,-26}{1}", msgCulture, ci.DisplayName); // Display the integral and floating-point values. Console.WriteLine("{0,-26}{1}", msgIntegralVal, integralVal); Console.WriteLine("{0,-26}{1}", msgFloatingVal, floatingVal); Console.WriteLine(); // Use the format specifiers that are only for integral types. Console.WriteLine("Format specifiers only for integral types:"); Console.WriteLine(msgDecimal + integralVal.ToString("D", ci)); Console.WriteLine(msgHexadecimal + integralVal.ToString("X", ci)); Console.WriteLine(); // Use the format specifier that is only for the Single and Double // floating-point types. Console.WriteLine("Format specifier only for the Single and Double types:"); Console.WriteLine(msgRoundTrip + floatingVal.ToString("R", ci)); Console.WriteLine(); // Use the format specifiers that are for integral or floating-point types. Console.WriteLine("Format specifiers for integral or floating-point types:"); Console.WriteLine(msgCurrency + floatingVal.ToString("C", ci)); Console.WriteLine(msgScientific + floatingVal.ToString("E", ci)); Console.WriteLine(msgFixedPoint + floatingVal.ToString("F", ci)); Console.WriteLine(msgGeneral + floatingVal.ToString("G", ci)); Console.WriteLine(msgNumber + floatingVal.ToString("N", ci)); Console.WriteLine(msgPercent + floatingVal.ToString("P", ci)); Console.WriteLine(); } } /* This code example produces the following results: Standard Numeric Format Specifiers: Use ToString(String) and the current thread culture. Culture: English (United States) Integral value: -12345 Floating-point value: -1234.567 Format specifiers only for integral types: (D) Decimal:. . . . . . . -12345 (X) Hexadecimal:. . . . . FFFFCFC7 Format specifier only for the Single and Double types: (R) Round-trip: . . . . . -1234.567 Format specifiers for integral or floating-point types: (C) Currency: . . . . . . ($1,234.57) (E) Scientific: . . . . . -1.234567E+003 (F) Fixed point:. . . . . -1234.57 (G) General (default):. . -1234.567 (N) Number: . . . . . . . -1,234.57 (P) Percent:. . . . . . . -123,456.70 % Use ToString(String, IFormatProvider) and a specified culture. Culture: German (Germany) Integral value: -12345 Floating-point value: -1234.567 Format specifiers only for integral types: (D) Decimal:. . . . . . . -12345 (X) Hexadecimal:. . . . . FFFFCFC7 Format specifier only for the Single and Double types: (R) Round-trip: . . . . . -1234,567 Format specifiers for integral or floating-point types: (C) Currency: . . . . . . -1.234,57 euro (E) Scientific: . . . . . -1,234567E+003 (F) Fixed point:. . . . . -1234,57 (G) General (default):. . -1234,567 (N) Number: . . . . . . . -1.234,57 (P) Percent:. . . . . . . -123.456,70% */