Функция 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.
Исключения
Тип исключения |
Номер ошибки |
Условия |
---|---|---|
InputStr слишком велика. |
||
Тип выражения Object не преобразуем к String. |
См. столбец "Номер ошибки", если выполняется обновление приложений Visual Basic версии 6.0, в которых используется неструктурированная обработка ошибок. (Можно сравнить номер ошибки с Свойство Number (объект Err).) Тем не менее, по возможности следует заменить эту систему управления ошибками на Обзор структурной обработки исключений в Visual Basic.
Примечание. |
---|
Исключение 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")
Примечание. |
---|
Функция 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)
См. также
Ссылки
Журнал изменений
Дата |
Журнал изменений |
Причина |
---|---|---|
Июль 2008 |
Добавлено примечание в подраздел "Исключения", чтобы показать, когда возникают исключения InvalidCastException. |
Обратная связь от клиента. |