Codificación aprenderaprogramar.com: CU00318A
LA FUNCIÓN VAL
En Visual Basic una petición de datos al usuario no necesitará ser dispuesta en el código, sino que se obtendrá a través de un objeto prefabricado: un TextBox. Con frecuencia el dato que queremos obtener será un valor numérico, mientras que sin embargo el contenido de los TextBox es tipo texto.
Por ello deberemos realizar una conversión. La función Val nos permite obtener el contenido de un TextBox en formato numérico (Integer, Single, Double, etc.).
El contenido que introduce un usuario a través de un TextBox tiene carácter de texto. Para convertir un número en formato texto a una variable numérica se usa la función Val. La sintaxis a emplear es:
Variable = Val(Cadena)
|
Ejemplo:
Dim A As Single
A = Val(TextBox1.Text) |
Supone que la variable A, que ha sido definida como tipo Single, adopta el contenido numérico del TextBox denominado TextBox1.
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 espacios en blanco, los tabuladores y los avances de línea se eliminan.
Val(" 38205 (Distrito Norte)")devuelve 38205 como valor numérico. Los espacios en blanco se eliminan, y el resto de cadena a partir de donde no se puede reconocer un valor numérico se ignora. Si la cadena empieza con un contenido no numérico Val devuelve cero. Por ejemplo Val (" (Distrito Norte) 38205 " devuelve cero.
La función Val sólo reconoce el punto (.) como separador decimal válido (aunque esto puede verse afectado por la configuración regional de tu ordenador). Cuando se usa un separador decimal diferente, debe realizarse un tratamiento previo de la cadena o utilizarse una función de conversión de tipos como CSng ó CDbl para convertir la cadena a un número.
|
A modo de ejemplo simple para ver el resultado de estas funciones, crea un proyecto y sitúa un TextBox sobre el formulario. Escribe el pequeño código que indicamos a continuación y comprueba sus resultados.
Código (versionesVB menos recientes): | Código (versiones VB más recientes): |
Rem Curso Visual Basic aprenderaprogramar.com Option Explicit Dim A As Single Private Sub Form_Load() A = Val(Text1.Text) MsgBox ("A vale " & A) A = Val(InputBox("Introduzca un número", "Introducción de número")) MsgBox ("A vale " & A) End Sub |
REM Curso Visual Basic aprenderaprogramar.com Option Explicit On Public Class Form1 Dim A As Single Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load A = Val(TextBox1.Text) MsgBox("A vale " & A) A = Val(InputBox("Introduzca un número", "Introducción de número")) MsgBox("A vale " & A) End Sub End Class |
La función Val convierte a cualquier formato numérico, por tanto puede servir para introducir contenido en variables de tipo Integer, Long, Single, Double, etc.