In This Topic
Numeric format strings control formatting operations in which a numeric data type is represented as a string. Numeric format strings can for example be specified for axis scale labels in both charts and gauges. Additionally you can use a numeric format string in the FORMAT pivot engine function.
Numeric format strings fall into two categories:
- Standard Numeric Format Strings - standard numeric format strings consist of one of a set of standard numeric format specifiers. Each standard format specifier denotes a particular, commonly used string representation of numeric data.
- Custom Numeric Format Strings - custom format strings consist of one or more custom numeric format specifiers. Combine custom numeric format specifiers to define an application-specific pattern that determines how numeric data is formatted.
Standard Numeric Format Strings
Standard numeric format strings are used to format common numeric types. A standard numeric format string takes the form Axx, where A is an alphabetic character called the format specifier, and xx is an optional integer called the precision specifier. The precision specifier ranges from 0 to 99 and affects the number of digits in the result. Any numeric format string that contains more than one alphabetic character, including white space, is interpreted as a custom numeric format string. For more information, see Custom Numeric Format Strings.
The following table describes the standard numeric format specifiers and displays sample output produced by each format specifier.
Format specifier
|
Name
|
Description
|
Examples
|
"C" or "c"
|
Currency
|
Result: A currency value.
Supported by: All numeric types.
Precision specifier: Number of decimal digits.
Default precision specifier: Based on current culture.
|
123.456 ("C", en-US) -> $123.46
123.456 ("C", fr-FR) -> 123,46 €
123.456 ("C", ja-JP) -> ¥123
-123.456 ("C3", en-US) -> ($123.456)
-123.456 ("C3", fr-FR) -> -123,456 €
-123.456 ("C3", ja-JP) -> -¥123.456
|
"D" or "d"
|
Decimal
|
Result: Integer digits with optional negative sign.
Supported by: Integral types only.
Precision specifier: Minimum number of digits.
Default precision specifier: Minimum number of digits required.
|
1234 ("D") -> 1234
-1234 ("D6") -> -001234
|
"E" or "e"
|
Exponential (scientific)
|
Result: Exponential notation.
Supported by: All numeric types.
Precision specifier: Number of decimal digits.
Default precision specifier: 6.
|
1052.0329112756 ("E", en-US) -> 1.052033E+003
1052.0329112756 ("e", fr-FR) -> 1,052033e+003
-1052.0329112756 ("e2", en-US) -> -1.05e+003
-1052.0329112756 ("E2", fr_FR) -> -1,05E+003
|
"F" or "f"
|
Fixed-point
|
Result: Integral and decimal digits with optional negative sign.
Supported by: All numeric types.
Precision specifier: Number of decimal digits.
Default precision specifier: Based on current culture.
|
1234.567 ("F", en-US) -> 1234.57
1234.567 ("F", de-DE) -> 1234,57
1234 ("F1", en-US) -> 1234.0
1234 ("F1", de-DE) -> 1234,0
-1234.56 ("F4", en-US) -> -1234.5600
-1234.56 ("F4", de-DE) -> -1234,5000
|
"G" or "g"
|
General
|
Result: The most compact of either fixed-point or scientific notation.
Supported by: All numeric types.
Precision specifier: Number of significant digits.
Default precision specifier: Depends on numeric type..
|
-123.456 ("G", en-US) -> -123.456
123.456 ("G", sv-SE) -> -123,456
123.4546 ("G4", en-US) -> 123.5
123.4546 ("G4", sv-SE) -> 123,5
-1.234567890e-25 ("G", en-US) -> -1.23456789E-25
-1.234567890e-25 ("G", sv-SE) -> -1,23456789E-25
|
"N" or "n"
|
Number
|
Result: Integral and decimal digits, group separators, and a decimal separator with optional negative sign.
Supported by: All numeric types.
Precision specifier: Desired number of decimal places.
Default precision specifier: Based on current culture.
|
1234.567 ("N", en-US) -> 1,234.57
1234.567 ("N", ru-RU) -> 1 234,57
1234 ("N", en-US) -> 1,234.0
1234 ("N", ru-RU) -> 1 234,0
-1234.56 ("N", en-US) -> -1,234.560
-1234.56 ("N", ru-RU) -> -1 234,560
|
P or p
|
Percent
|
Result: Number multiplied by 100 and displayed with a percent symbol.
Supported by: All numeric types.
Precision specifier: Desired number of decimal places.
Default precision specifier: Based on current culture.
|
1 ("P", en-US) -> 100.00 %
1 ("P", fr-FR) -> 100,00 %
-0.39678 ("P1", en-US) -> -39.7 %
-0.39678 ("P1", fr-FR) -> -39,7 %
|
X or x
|
Hexadecimal
|
Result: A hexadecimal string.
Supported by: Integral types only.
Precision specifier: Number of digits in the result string.
|
255 ("X") -> FF
-1 ("x") -> ff
255 ("x4") -> 00ff
-1 ("X4") -> 00FF
|
Any other single character
|
Unknown specifier
|
Result: error
|
|
See Standard Numeric Format Strings on MSDN for more details.
Custom Numeric Format Strings
You can create a custom numeric format string, which consists of one or more custom numeric specifiers, to define how to format numeric data. A custom numeric format string is any format string that is not a standard numeric format string.
The following table describes the custom numeric format specifiers and displays sample output produced by each format specifier.
Format specifier
|
Name
|
Description
|
Examples
|
"0"
|
Zero placeholder
|
Replaces the zero with the corresponding digit if one is present; otherwise, zero appears in the result string.
|
1234.5678 ("00000") -> 01235
0.45678 ("0.00", en-US) -> 0.46
0.45678 ("0.00", fr-FR) -> 0,46
|
"#"
|
Digit placeholder
|
Replaces the pound sign with the corresponding digit if one is present; otherwise, no digit appears in the result string.
|
1234.5678 ("#####") -> 1235
0.45678 ("#.##", en-US) -> .46
0.45678 ("#.##", fr-FR) -> ,46
|
"."
|
Decimal point
|
Determines the location of the decimal separator in the result string.
|
0.45678 ("0.00", en-US) -> 0.46
0.45678 ("0.00", fr-FR) -> 0,46
|
","
|
Group separator and number scaling
|
Serves as both a group separator and a number scaling specifier. As a group separator, it inserts a localized group separator character between each group. As a number scaling specifier, it divides a number by 1000 for each comma specified.
|
Group separator specifier:
2147483647 ("##,#", en-US) -> 2,147,483,647
2147483647 ("##,#", es-ES) -> 2.147.483.647
Scaling specifier:
2147483647 ("#,#,,", en-US) -> 2,147
2147483647 ("#,#,,", es-ES) -> 2.147
|
"%"
|
Percentage placeholder
|
Multiplies a number by 100 and inserts a localized percentage symbol in the result string.
|
0.3697 ("%#0.00", en-US) -> %36.97
0.3697 ("%#0.00", el-GR) -> %36,97
0.3697 ("##.0 %", en-US) -> 37.0 %
0.3697 ("##.0 %", el-GR) -> 37,0 %
|
"‰"
|
Per mille placeholder
|
Multiplies a number by 1000 and inserts a localized per mille symbol in the result string.
|
0.03697 ("#0.00‰", en-US) -> 36.97‰
0.03697 ("#0.00‰", ru-RU) -> 36,97‰
|
"E0"
"E+0"
"E-0"
"e0"
"e+0"
"e-0"
|
Exponential notation
|
If followed by at least one 0 (zero), formats the result using exponential notation. The case of "E" or "e" indicates the case of the exponent symbol in the result string. The number of zeros following the "E" or "e" character determines the minimum number of digits in the exponent. A plus sign (+) indicates that a sign character always precedes the exponent. A minus sign (-) indicates that a sign character precedes only negative exponents.
|
987654 ("#0.0e0") -> 98.8e4
1503.92311 ("0.0##e+00") -> 1.504e+03
1.8901385E-16 ("0.0e+00") -> 1.9e-16
|
\
|
Escape character
|
Causes the next character to be interpreted as a literal rather than as a custom format specifier.
|
987654 ("\###00\#") -> #987654#
|
'string'
"string"
|
Literal string delimiter
|
Indicates that the enclosed characters should be copied to the result string unchanged.
|
68 ("# ' degrees'") -> 68 degrees
68 ("#' degrees'") -> 68 degrees
|
;
|
Section separator
|
Defines sections with separate format strings for positive, negative, and zero numbers.
|
12.345 ("#0.0#;(#0.0#);-\0-") -> 12.35
0 ("#0.0#;(#0.0#);-\0-") -> -0-
-12.345 ("#0.0#;(#0.0#);-\0-") -> (12.35)
12.345 ("#0.0#;(#0.0#)") -> 12.35
0 ("#0.0#;(#0.0#)") -> 0.0
-12.345 ("#0.0#;(#0.0#)") -> (12.35)
|
Other
|
All other characters
|
The character is copied to the result string unchanged.
|
68 ("# °") -> 68 °
|
See Custom Numeric Format Strings on MSDN