FormatNumber Function
Important This document may not represent best practices for current development, links to downloads and other resources may no longer be valid. Current recommended version can be found here. ArchiveDisclaimer

FormatNumber Function

Returns an expression formatted as a number.

Function FormatNumber(
   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. The default value is –1, which indicates that the computer's regional settings are used.
Optional. Tristate constant that indicates whether a leading zero is displayed for fractional values. See Settings for values.
Optional. Tristate constant that indicates whether to place negative values within parentheses. See Settings for values.
Optional. Tristate constant that indicates whether or not numbers are grouped using the group delimiter specified in the locale settings. See Settings for values.


The IncludeLeadingDigit, UseParensForNegativeNumbers, and GroupDigits arguments have the following settings:

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


Exception type Error number Condition
InvalidCastException 13 Type is not numeric.


When one or more optional arguments are omitted, the values for omitted arguments are provided by the locale 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.


This example demonstrates the FormatNumber function.

Dim myNumber As Integer = 45600
Dim myString As String
' Returns "45,600.00".
myString = FormatNumber(myNumber, 2, , ,TriState.True)


Namespace: Microsoft.VisualBasic

Module: Strings

Assembly: Microsoft Visual Basic .NET Runtime (in Microsoft.VisualBasic.dll)

See Also

FormatCurrency Function | FormatDateTime Function | FormatPercent Function | Tristate Enumeration | InvalidCastException

© 2015 Microsoft