Val-Funktion
Aktualisiert: Juli 2008
Gibt die in einer Zeichenfolge enthaltenen Zahlen als numerischen Wert eines geeigneten Typs zurück.
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
Parameter
- Expression, InputStr
Erforderlich. Ein beliebiger gültiger String-Ausdruck, eine Object-Variable oder Char-Wert. Wenn Expression den Typ Object hat, muss der Wert in String umgewandelt werden können. Andernfalls tritt ein ArgumentException-Fehler auf.
Ausnahmen
Ausnahmetyp |
Fehlernummer |
Bedingung |
---|---|---|
InputStr ist zu lang. |
||
Object-Typausdruck kann nicht in String konvertiert werden. |
Beachten Sie die Spalte "Fehlernummer", wenn Sie Visual Basic 6.0-Anwendungen aktualisieren, die eine unstrukturierte Fehlerbehandlung verwenden. (Sie können die Fehlernummer mit der Number-Eigenschaft (Err-Objekt) vergleichen.) Wenn möglich, sollten Sie jedoch erwägen, eine solche Fehlersteuerung durch eine Übersicht über die strukturierte Ausnahmebehandlung für Visual Basic zu ersetzen.
Hinweis: |
---|
Eine InvalidCastException-Ausnahme (Fehlernummer 13) kann als Reaktion auf bestimmte ungewöhnliche Zahlenformate ausgelöst werden. Weitere Informationen zu diesem Fehler finden Sie unter Typenkonflikt (Visual Basic). Die Ausnahme wird beispielsweise im folgenden Code ausgelöst. ' These examples cause run-time errors. 'Console.WriteLine(Val("1.34%")) 'Console.WriteLine(Val("1.34&")) Der Konflikt zwischen der als Double formatierten Zahl und den Zeichen vom Integer-Typ und vom Long-Typ würde vom Compiler aufgefangen, wenn er nicht in einer Zeichenfolge verborgen wäre. ' These examples cause compiler errors. 'Dim m = 1.34% 'Dim n = 1.34& |
Hinweise
Die Val-Funktion liest die Zeichen einer Zeichenfolge bis zum ersten Zeichen, das nicht als Teil einer Zahl interpretiert werden kann. Symbole und Zeichen, die oft als Teil eines numerischen Werts erkannt werden (z. B. Währungssymbole und Kommas), werden nicht erkannt. Die Funktion erkennt allerdings die Präfixe &O (für oktal) und &H (für hexadezimal) zur Angabe der Zahlenbasis. Leerzeichen, Tabulatoren und Zeilenvorschubzeichen werden aus dem Argument entfernt.
Der folgende Aufruf gibt den Wert 1615198 zurück.
Val(" 1615 198th Street N.E.")
Der folgende Aufruf gibt den Dezimalwert -1 zurück.
Val("&HFFFF")
Hinweis: |
---|
Die Val-Funktion erkennt nur den Punkt (.) als gültiges Dezimaltrennzeichen. Wenn Sie ein anderes Dezimaltrennzeichen benötigen (z. B. für internationale Anwendungen), verwenden Sie stattdessen die Funktion CDbl oder CInt, um eine Zeichenfolge in eine Zahl zu konvertieren. Um die Zeichenfolgendarstellung in eine Zahl in einer bestimmten Kultur umzuwandeln, verwenden Sie die Parse(String, IFormatProvider)-Methode des numerischen Datentyps. Verwenden Sie beispielsweise Double.Parse, wenn Sie eine Zeichenfolge in einen Double-Wert konvertieren. |
Beispiel
Im folgenden Beispiel wird die Val-Funktion verwendet, um die Zahlen zurückzugeben, die in den einzelnen Zeichenfolgen enthalten sind. Val beendet die Konvertierung beim ersten Zeichen, das nicht als numerische Ziffer, numerischer Modifizierer, numerische Zeichensetzung oder Leerraum interpretiert werden kann.
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")
Anforderungen
Namespace:Microsoft.VisualBasic
**Modul:**Conversion
Assembly: Visual Basic Runtime Library (in Microsoft.VisualBasic.dll)
Siehe auch
Referenz
Funktionen für die Typkonvertierung
Änderungsprotokoll
Date |
Versionsgeschichte |
Grund |
---|---|---|
Juli 2008 |
Hinweis im Abschnitt "Ausnahmen" hingefügt, um das Auftreten von InvalidCastException-Ausnahmen zu erläutern. |
Kundenfeedback. |