This documentation is archived and is not being maintained.

Conversion.Val Method (String)

Returns the numbers contained in a string as a numeric value of appropriate type.

Namespace:  Microsoft.VisualBasic
Assembly:  Microsoft.VisualBasic (in Microsoft.VisualBasic.dll)

public static double Val(
	string InputStr


Type: System.String
Required. Any valid String expression, Object variable, or Char value. If Expression is of type Object, its value must be convertible to String or an ArgumentException error occurs.

Return Value

Type: System.Double
Returns the numbers contained in a string as a numeric value of appropriate type.


InputStr is too large.


Expression is an Object type expression that is not convertible to String.

The Val function stops reading the string at the first character it cannot recognize as part of a number. Symbols and characters that are often considered parts of numeric values, such as dollar signs and commas, are not recognized. However, the function recognizes the radix prefixes &O (for octal) and &H (for hexadecimal). Blanks, tabs, and linefeed characters are removed from the argument.

The following call returns the value 1234123.

Val(" 1234 123th Street N.E.") 

The following call returns the decimal value -1.


The Val function recognizes only the period (.) as a valid decimal separator. When other decimal separators are used, as in international applications, use CDbl or CInt instead to convert a string to a number. To convert the string representation of a number in a particular culture to a numeric value, use the numeric type's Parse(String, IFormatProvider) method. For example, use Double.Parse when converting a string to a Double.


An InvalidCastException exception might be raised in response to certain uncommon number formats. For example, the following code raises this exception.

' These examples cause run-time errors.



The conflict between the number formatted as a Double and the Integer and Long type characters would be caught by the compiler if the conflict were not contained in strings.

' These examples cause compiler errors.

'Dim m = 1.34%

'Dim n = 1.34&

The following example uses the Val function to return the numbers contained in each string. Val stops converting at the first character that cannot be interpreted as a numeric digit, numeric modifier, numeric punctuation, or white space.

Dim valResult As Double
' The following line of code sets valResult to 2457.
valResult = Val("2457")
' The following line of code sets valResult to 2457.
valResult = Val(" 2 45 7")
' The following line of code sets valResult to 24.
valResult = Val("24 and 57")

.NET Framework

Supported in: 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.