VB_Standard_Numeric_Format_Strings

advertisement
.NET Framework Developer's Guide
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.
The following table describes the standard numeric format specifiers and displays sample output produced by each
format specifier. For more information, see the notes that follow the table.
Format
specifier
Name
Description
C or c
Currency
The number is converted to a string that represents a currency amount. The
conversion is controlled by the currency format information of the current
NumberFormatInfo object.
The precision specifier indicates the desired number of decimal places. If the precision
specifier is omitted, the default currency precision given by the current
NumberFormatInfo object is used.
The following example formats a Double value with the currency format specifier.
D or d
Decimal
This format is supported only for integral types. The number is converted to a string of
decimal digits (0-9), prefixed by a minus sign if the number is negative.
The precision specifier indicates the minimum number of digits desired in the resulting
string. If required, the number is padded with zeros to its left to produce the number of
digits given by the precision specifier.
The following example formats an Int32 value with the Decimal format specifier.
E or e
Scientific
(exponential)
The number is converted to a string of the form "-d.ddd…E+ddd" or "-d.ddd…e+ddd",
where each 'd' indicates a digit (0-9). The string starts with a minus sign if the number
is negative. One digit always precedes the decimal point.
The precision specifier indicates the desired number of digits after the decimal point. If
the precision specifier is omitted, a default of six digits after the decimal point is used.
The case of the format specifier indicates whether to prefix the exponent with an 'E' or
an 'e'. The exponent always consists of a plus or minus sign and a minimum of three
digits. The exponent is padded with zeros to meet this minimum, if required.
The following example formats a Double value with the scientific format specifier.
F or f
Fixed-point
The number is converted to a string of the form "-ddd.ddd…" where each 'd' indicates
a digit (0-9). The string starts with a minus sign if the number is negative.
The precision specifier indicates the desired number of decimal places. If the precision
specifier is omitted, the default numeric precision is given by the NumberDecimalDigits
property of the current NumberFormatInfo object.
The following example formats a Double and an Int32 value with the fixed-point format
specifier.
G or g
General
The number is converted to the most compact of either fixed-point or scientific
notation, depending on the type of the number and whether a precision specifier is
present. If the precision specifier is omitted or zero, the type of the number determines
the default precision, as indicated by the following list.







Byte or SByte: 3
Int16 or UInt16: 5
Int32 or UInt32: 10
Int64 or UInt64: 19
Single: 7
Double: 15
Decimal: 29
Fixed-point notation is used if the exponent that would result from expressing the
number in scientific notation is greater than -5 and less than the precision specifier;
otherwise, scientific notation is used. The result contains a decimal point if required
and trailing zeroes are omitted. If the precision specifier is present and the number of
significant digits in the result exceeds the specified precision, then the excess trailing
digits are removed by rounding.
The exception to the preceding rule is if the number is a Decimal and the precision
specifier is omitted. In that case, fixed-point notation is always used and trailing zeroes
are preserved.
If scientific notation is used, the exponent in the result is prefixed with 'E' if the format
specifier is 'G', or 'e' if the format specifier is 'g'.
The following example formats assorted floating-point values with the general format
specifier.
N or n
Number
The number is converted to a string of the form "-d,ddd,ddd.ddd…", where '-' indicates
a negative number symbol if required, 'd' indicates a digit (0-9), ',' indicates a thousand
separator between number groups, and '.' indicates a decimal point symbol. The actual
negative number pattern, number group size, thousand separator, and decimal
separator are specified by the NumberNegativePattern, NumberGroupSizes,
NumberGroupSeparator, and NumberDecimalSeparator properties, respectively, of
the current NumberFormatInfo object.
The precision specifier indicates the desired number of decimal places. If the precision
specifier is omitted, the default numeric precision is given by the NumberDecimalDigits
property of the current NumberFormatInfo object.
The following example formats assorted floating-point values with the number format
specifier.
P or p
Percent
The number is converted to a string that represents a percent as defined by the
NumberFormatInfo.PercentNegativePattern property if the number is negative, or the
NumberFormatInfo.PercentPositivePattern property if the number is positive. The
converted number is multiplied by 100 in order to be presented as a percentage.
The precision specifier indicates the desired number of decimal places. If the precision
specifier is omitted, the default numeric precision given by the current
NumberFormatInfo object is used.
The following example formats floating-point values with the percent format specifier.
R or r
Round-trip
This format is supported only for the Single and Double types. The round-trip specifier
guarantees that a numeric value converted to a string will be parsed back into the
same numeric value. When a numeric value is formatted using this specifier, it is first
tested using the general format, with 15 spaces of precision for a Double and 7
spaces of precision for a Single. If the value is successfully parsed back to the same
numeric value, it is formatted using the general format specifier. However, if the value
is not successfully parsed back to the same numeric value, then the value is formatted
using 17 digits of precision for a Double and 9 digits of precision for a Single.
Although a precision specifier can be present, it is ignored. Round trips are given
precedence over precision when using this specifier.
The following example formats Double values with the round-trip format specifier.
X or x
Hexadecimal
This format is supported only for integral types. The number is converted to a string of
hexadecimal digits. The case of the format specifier indicates whether to use
uppercase or lowercase characters for the hexadecimal digits greater than 9. For
example, use 'X' to produce "ABCDEF", and 'x' to produce "abcdef".
The precision specifier indicates the minimum number of digits desired in the resulting
string. If required, the number is padded with zeros to its left to produce the number of
digits given by the precision specifier.
The following example formats Int32 values with the hexadecimal format specifier.
Any other
single
character
(Unknown
specifier)
(An unknown specifier throws a FormatException at runtime.)
Download