Val, fonction

Mise à jour : Juillet 2008

Retourne le nombre contenu dans une chaîne de caractère sous la forme d'une valeur numérique d'un type approprié.

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

Paramètres

  • Expression, InputStr
    Requis. Toute expression String, variable Object ou valeur Char valide. Si Expression est de type Object, sa valeur doit pouvoir être convertie en String ; sinon, une erreur ArgumentException se produit.

Exceptions

Type d'exception

Numéro de l'erreur

Condition

OverflowException

6

InputStr est trop grand.

ArgumentException

438

L'expression de type Object ne peut pas être convertie en String.

Consultez la colonne « Numéro d'erreur » si vous mettez à niveau des applications Visual Basic 6.0 qui utilisent la gestion non structurée des erreurs. (Vous pouvez comparer le numéro d'erreur par rapport à Number, propriété (objet Err).) Toutefois, lorsque cela est possible, vous devez envisager de remplacer un tel contrôle d'erreurs par Vue d'ensemble de la gestion structurée des exceptions pour Visual Basic.

Remarque :

Une exception InvalidCastException, numéro d'erreur 13, peut être levée en réponse à certains formats numériques rares. Pour plus d'informations sur cette erreur, consultez Incompatibilité de type (Visual Basic). Par exemple le code suivant lève l'exception :

' These examples cause run-time errors.

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

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

Le conflit entre le nombre au format Double et les caractères de type Integer et Long sera intercepté par le compilateur s'il n'a pas été masqué dans une chaîne.

' These examples cause compiler errors.

'Dim m = 1.34%

'Dim n = 1.34&

Notes

La fonction Val arrête la lecture de la chaîne au premier caractère ne faisant apparemment pas partie d'un nombre. Les symboles et caractères fréquemment associés aux valeurs numériques, comme le signe $ et les virgules, ne sont pas reconnus. En revanche, la fonction reconnaît les préfixes &O (pour octal) et &H (pour hexadécimal). Les espaces, les tabulations et les caractères de saut de ligne ne sont pas pris en compte dans l'argument.

L'appel suivant retourne la valeur 1615198 :

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

L'appel suivant retourne la valeur décimale -1.

Val("&HFFFF") 
Remarque :

La fonction Val ne reconnaît que le point (.) comme séparateur décimal valide. Lors de l'utilisation d'autres séparateurs décimaux (applications internationales, par exemple), convertissez la chaîne en nombre à l'aide de la fonction CDbl ou CInt. Pour convertir la représentation sous forme de chaîne d'un nombre utilisé dans une culture particulière en une valeur numérique, utilisez la méthode Parse(String, IFormatProvider) de type numérique. Par exemple, utilisez Double.Parse lors de la conversion d'une chaîne en Double.

Exemple

L'exemple suivant utilise la fonction Val pour retourner les nombres contenus dans chaque chaîne. Val arrête la conversion au premier caractère impossible à interpréter comme un chiffre, un modificateur numérique, une ponctuation numérique ou un espace blanc.

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

Configuration requise

Espace de noms : Microsoft.VisualBasic

**Module :**Conversion

Assembly : bibliothèque Visual Basic Runtime (dans Microsoft.VisualBasic.dll)

Voir aussi

Référence

Str, fonction

Fonctions de conversion de types de données

OverflowException

InvalidCastException

ArgumentException

Historique des modifications

Date

Historique

Raison

Juillet 2008

Ajout d'une remarque dans la section « Exceptions » à afficher lorsque des exceptions InvalidCastException se produisent.

Commentaires client.