Str — числовые типы в String

Листинг 5.9. Измененный обработчик события Click кнопки cmd_First

Val — тип String в тип Double

Листинг 5.8. Обработчик события Click кнопки cmd_First

Преобразование типов данных

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

Давайте проведем эксперимент. Создадим форму, назовем ее frm_First, разместим на ней три текстовых поля — txt_First и txt_Second для ввода чисел, и txt_Summ для вывода суммы этих чисел. Добавим на форму кнопку cmd_First с надписью Сумма и создадим для нее обработчик события Click (листинг 5.8.).

txt_Summ = txt_First + txt_Second

На рисунке ниже вы можете видеть форму после того, как мы ввели в первое и второе поля числа 1 и 2 и нажали на кнопку.

 

 

Как видите, вместо сложения мы получили конкатенацию. Любые значения, вводимые в текстовые поля, по умолчанию рассматриваются как строковые. Чтобы все-таки получить сумму введенных чисел в поле "Сумма чисел", нам нужно превратить строки, пусть и содержащие числовые символы, в настоящие числа, преобразовать их из типа данных String в один из числовых типов.

Для таких "превращений" существуют специальные функции преобразования типов.

Функция Val применяется для конверсии строковых переменных в числовые, а именно – переменных типа String в тип Double.

Чтобы наш пример заработал, код обработчика нажатия кнопки можно переписать так (листинг 5.9.):

txt_Summ = Val(txt_First) + Val(txt_Second)

Давайте рассмотрим еще несколько примеров использования этой функции.

Val (" 12345привет") возвратит число 12345.

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

Val ("1 2 3") возвратит число 123

Val ("1 2 и 3") возвратит число 12.

Иногда нужно провести обратное преобразование — превратить число в строку.

Функция Str конвертирует данные различных числовых типов в тип String.

Особенность функции заключается в том, что первый символ полученного строкового значения зарезервирован для знака числа. Если в строку конвертируется число отрицательное — первый символ полученной строки — знак -. Если конвертируется положительное число, первым символом полученной строки будет пробел, а дальше будут идти числовые символы.

Например, функция Str (12) возвратит строку " 12". Мы рассмотрим пример с использованием функции Str немного ниже, когда будем говорить о работе со строками.

Существуют и другие функции, предназначенные для конверсии типов данных. Их названия состоят из сокращенного слова "Convert" и сокращенного же названия типа данных, в который они конвертируют входные значения. Например, это CBool, CByte, CCur, CDate, CDbl, CDec, CInt, CLng, CSng, CStr, CVar. Скажем, функция CIntконвертирует данные в формат Integer. Учитывая особенности этого типа данных, корректно могут быть сконвертированы лишь значения от -32768 до 32767. Причем, дробные числа округляются при конверсии до ближайшего четного числа — 0.5 округляется до 0, 1.5 — до 2. Если вам понадобятся подробности о каждой из этих функций — обратитесь к справочной системе VBA.