Visual Basic Language Reference  

FormatCurrency Function

Returns an expression formatted as a currency value using the currency symbol defined in the system control panel.

Function FormatCurrency(
   ByVal Expression As Object,
   Optional ByVal NumDigitsAfterDecimal As Integer = -1,
   Optional ByVal IncludeLeadingDigit As TriState = TriState.UseDefault,
   Optional ByVal UseParensForNegativeNumbers As TriState = TriState.UseDefault,
   Optional ByVal GroupDigits As TriState = TriState.UseDefault
) As String


Required. Expression to be formatted.
Optional. Numeric value indicating how many places are displayed to the right of the decimal. Default value is –1, which indicates that the computer's regional settings are used.
Optional. Tristate enumeration that indicates whether or not a leading zero is displayed for fractional values. See Settings for values.
Optional. Tristate enumeration that indicates whether or not to place negative values within parentheses. See Settings for values.
Optional. Tristate enumeration that indicates whether or not numbers are grouped using the group delimiter specified in the computer's regional settings. See Settings for values.


The IncludeLeadingDigit, UseParensForNegativeNumbers, and GroupDigits arguments take the following Tristate enumeration values:

Value Description
TriState.True True
TriState.False False
TriState.UseDefault The computer's regional settings


Exception type Error number Condition
ArgumentException 5 Number of digits after decimal point is greater than 99.
InvalidCastException 13 Type is not numeric.


When one or more optional arguments are omitted, the computer's matching regional-settings values are used instead.

The position of the currency symbol relative to the currency value is determined by the system's regional settings.

Note   All settings information comes from the locale of the application. By default, that will be the locale set in the control panel. However, it may be changed programmatically by using the .NET Framework, except leading zero, which comes from the Number tab.


The following example illustrates the use of the FormatCurrency function.

Dim myDebt As Double = -4456.43
Dim myString As String
' Returns"($4,456.43)".
MyString = FormatCurrency(myDebt,,, TriState.True, TriState.True)

See Also

FormatDateTime Function | FormatNumber Function | FormatPercent Function | Tristate Enumeration | ArgumentException | InvalidCastException