Val (Función)

Actualización: Julio de 2008

Devuelve los números contenidos en una cadena como un valor numérico del tipo adecuado.

Public Overloads Function Val(ByVal InputStr As String) As Double
' -or-
Public Overloads Function Val(ByVal Expression As Object) As Double
' -or-
Public Overloads Function Val(ByVal Expression As Char) As Integer

Parámetros

  • Expression, InputStr
    Obligatorio. Cualquier expresión String, variable Object o valor Char válidos. Si Expression es del tipo Object, su valor debe poder convertirse a String o se producirá un error ArgumentException.

Excepciones

Tipo de excepción

Número de error

Condición

OverflowException

6

InputStr es demasiado grande.

ArgumentException

438

Expresión de tipo Object no convertible a String.

Consulte la columna "Número de error" si está actualizando aplicaciones de Visual Basic 6.0 que utilizan el control de errores no estructurado. (Se puede comparar el número de error con respecto a Number (Propiedad, objeto Err)). Sin embargo, siempre que sea posible, debe considerarse la posibilidad de sustituir dicho control de errores por Información general sobre el control estructurado de excepciones de Visual Basic.

Nota:

Se puede provocar una excepción InvalidCastException, número de error 13, en respuesta a ciertos formatos de número poco frecuentes. Para obtener más información acerca de este error, vea No coinciden los tipos (Visual Basic). Por ejemplo, el siguiente código provoca la excepción.

' These examples cause run-time errors.

'Console.WriteLine(Val("1.34%"))

'Console.WriteLine(Val("1.34&"))

El compilador detectaría el conflicto entre el número con formato Double y los caracteres de tipo Integer y Long si no estuviesen ocultos en una cadena.

' These examples cause compiler errors.

'Dim m = 1.34%

'Dim n = 1.34&

Comentarios

La función Val deja de leer la cadena en el primer carácter que no puede reconocer como parte de un número. Los símbolos y caracteres que se suelen considerar parte de valores numéricos, como signos de moneda y comas, no se reconocen. Sin embargo, la función reconoce los prefijos de base &O (para octal) y &H (para hexadecimal). Los espacios en blanco, los tabuladores y los avances de línea se eliminan del argumento.

La siguiente llamada devuelve el valor 1615198:

Val(" 1615 198th Street N.E.") 

La siguiente llamada devuelve el valor decimal -1:

Val("&HFFFF") 
Nota:

La función Val sólo reconoce el punto (.) como separador decimal válido. Si se utilizan otros separadores decimales, por ejemplo en aplicaciones internacionales, debe utilizar CDbl o CInt para convertir una cadena en un número. Para convertir la representación de cadena de un número de una referencia cultural determinada en un valor numérico, utilice el método Parse(String, IFormatProvider) de tipo numérico. Por ejemplo, utilice Double.Parse al convertir una cadena en Double.

Ejemplo

En el ejemplo siguiente se utiliza la función Val para devolver los números incluidos en cada cadena. Val detiene la conversión en el primer carácter que no puede interpretar como un dígito numérico, modificador numérico, puntuación numérica o espacio en blanco.

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")

Requisitos

Espacio de nombres:Microsoft.VisualBasic

Módulo: Conversion

Ensamblado: Visual Basic Runtime Library (en Microsoft.VisualBasic.dll)

Vea también

Referencia

Str (Función)

Funciones de conversión de tipos

OverflowException

InvalidCastException

ArgumentException

Historial de cambios

Fecha

Historial

Motivo

Julio de 2008

Se ha agregado una nota en la sección "Excepciones" para mostrar cuándo se producen excepciones InvalidCastException.

Comentarios de los clientes.