Visual Basic 2005 Formatting numbers
The ToString method converts a value to the equivalent string and formats it at the same time. It is exposed by all data types.
To convert any value to a string we call the To String method, without any arguments.
The ToString method, however, accepts an argument, and determines how the value will be formatted as a string. For example, we can format a number as currency and display it in two decimal digits.
Notice that ToString is a method, not a property. It returns a value, which we can assign to another variable or pass as arguments to a function like MsgBoxQ, but the original value is not affected. The ToString method can also format a value if called with the format argument as shown below:
ToString(formatString)
The formatString argument is a format specifier. This argument can be a specific character that corresponds to a predetermined format or a string of characters that have special meaning.
We use standard format strings for the most common operations and picture strings to specify unusual formatting. To format the value 3339.85 as a dollar amount, we can use the following standard currency format string.
Dim int As Single = 3339.85
Dim strlnt As String
strlnt = int.ToString(’C”)
or the following picture numeric format string
strlnt int.ToString(’$###,###.00’)
Both statements will format the value as “$3339.85”. The “C” argument in the first example means currency and formats the numeric value as currency.
The picture format string shown above is made up of literals and characters that have special meaning.
The dollar sign has no special meaning and will appear as is.
The # symbol is a digit placeholder.
All # symbols will be replaced by numeric digits, starting from the right. If the number has fewer digits than specified in the string, the extra symbols to the left will be ignored. The comma tells the Format function to insert a comma between thousands. The period is the decimal point, which is followed by two more digit placeholders. Unlike the # sign, the 0 is a special place holder if there are not enough digits in the number for all the zeros you’ve specified, a 0 will appear in the place of the missing digits. If the original value had been 3339.8, for example, the last statement would have formatted it as $3339.80. If we used the # placeholder instead, then the string returned by the Format method would have a single decimal digit.
STANDARD NUMERIC FORMAT STRINGS
VB 2005 recognizes the standard numeric format strings shown below.
FORMAT CHARACTER DESCRIPTION EXAMPLE
C or C Currency 12345.67 .ToStri ng( ‘C’) returns $12,345.67
E ore Scientific format 12345.67 .ToStri ngC ‘E’) returns 1.234567E1.004
F or f Fixed-point format 12345.67 .ToStri ng( ‘F”) returns 12345.67
G org General format Return a value either in flxed.point or scientific format
Norn Number format 12345.67.ToString(’N’) returnsia,345.67
X or X Hexadecimal format 25O.ToString(X’) retumsFA
The format character is followed by an integer. If present, the integer value specifies the number of decimal places that are displayed. The default accuracy is two decimal digits.
The “C” format string causes the ToString method to return a string representing the number as a currency value. An integer following the “C” determines the number of decimal places that are displayed. If no number is provided, two digits are shown after the decimal separator. The expression
2298.ToString (“c3”) will return the string “$2,298.00”, and the expression
2298.7788.ToString(“c3”) will return the string “$2,298.780”
.
The fixed-point format returns a number with one or more decimal digits. The expression
(245. 5).ToString( “f3”) will return the value 245.500.
The optional parentheses around the value makes clear that the number has a decimal point. In VB it is not required to supply these parentheses.