Поделиться через


Функция Val

Обновлен: Июль 2008

Возвращает числа, содержащиеся в строке в качестве числовых значений соответствующего типа.

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

Параметры

  • Expression, InputStr
    Обязательный атрибут. Любое допустимое выражение String, переменная Object или переменная Char. Если Expression имеет тип Object, его значение должно быть преобразуемо к String, или возникнет ошибка ArgumentException.

Исключения

Тип исключения

Номер ошибки

Условия

OverflowException

6

InputStr слишком велика.

ArgumentException

438

Тип выражения Object не преобразуем к String.

См. столбец "Номер ошибки", если выполняется обновление приложений Visual Basic версии 6.0, в которых используется неструктурированная обработка ошибок. (Можно сравнить номер ошибки с Свойство Number (объект Err).) Тем не менее, по возможности следует заменить эту систему управления ошибками на Обзор структурной обработки исключений в Visual Basic.

k7beh1x9.alert_note(ru-ru,VS.90).gifПримечание.

Исключение InvalidCastException, ошибка номер 13, может возникать при определенных нестандартных числовых форматах. Дополнительные сведения об этой ошибке см. в разделе Несоответствие типа (Visual Basic). Например, следующий код вызывает исключение.

' These examples cause run-time errors.

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

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

Конфликт между числом, форматированным как Double, как Integer и как Long должен обнаруживаться компилятором, если этот конфликт происходит не в скрытой строке.

' These examples cause compiler errors.

'Dim m = 1.34%

'Dim n = 1.34&

Заметки

Функция Val прекращает чтение строки на первом знаке, который она не может распознать как часть числа. Символы и знаки, которые часто считаются частями числовых значений, например знаки доллара и запятые, не распознаются. Однако, функция распознает префиксы оснований систем счисления &O (для восьмеричной) и &H (для шестнадцатеричной). Пробелы, знаки табуляции и знаки новой строки удаляются из аргумента.

Следующий вызов возвращает значение 1615198.

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

Следующий вызов возвращает десятичное значение -1.

Val("&HFFFF") 
k7beh1x9.alert_note(ru-ru,VS.90).gifПримечание.

Функция Val распознает только точку (.) в качестве допустимого десятичного разделителя. Когда используются другие десятичные разделители, например в приложениях на разных языках, применяйте вместо функции Val функцию CDbl или CInt, чтобы преобразовать строку в число. Для преобразования строкового представления числа в числовое значение определенного языка и региональных параметрв, используется метод Parse(String, IFormatProvider) числового типа. Например, используйте Double.Parse при преобразовании строки к Double.

Пример

В следующем примере функция Val используется для возврата чисел, содержащихся в каждой строке.Val прекращает преобразование на первом знаке, которое не может быть интерпретировано как цифра, числовой модификатор, числовой знак препинания или пробел.

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

Требования

Пространство имен:Microsoft.VisualBasic

**Модуль:**Conversion

Сборка: Visual Basic (библиотека времени выполнения, в Microsoft.VisualBasic.dll)

См. также

Ссылки

Функция Str

Функции преобразования типов

OverflowException

InvalidCastException

ArgumentException

Журнал изменений

Дата

Журнал изменений

Причина

Июль 2008

Добавлено примечание в подраздел "Исключения", чтобы показать, когда возникают исключения InvalidCastException.

Обратная связь от клиента.