Эта заметка посвящена преобразованию данных. Сразу скажу, я не ставлю перед собой цель рассмотреть все варианты преобразования данных в C++ Builder’е. Разберу лишь наиболее универсальны методы.
Начну, пожалуй, с того, что для преобразования данных в C++ Builder’е имеются функции. В частности функция FloatToStr()
преобразует вещественный тип данных float
в строку String
. Функция StrToFloat()
делает наоборот.
Данные целого типа могут быть преобразованы в строку при помощи функции IntToStr()
. Наоборот действует функция StrToInt()
.
Кроме того, возможно явное сужение или расширение типов. Примером расширения типа данных может быть:
1 2 3 4 5 6 7 | int a=5, b=4; float x; x=a/b; // получим x=1, т.к. a и b целые числа x=(float)a/(float)b; // получим x=1,25 за счет расширения типа данных a и b x=float(a)/float(b); // те же яйца, только в профиль x=(float)a/b; // за счет расширения типа данных результата получим x=1,25 x=float(a/b); // даст в результате x=1, т.к. расширению типа будет подвергаться уже результат деления двух целых чисел |
В то же время, сужение типа данных приведет к потере части результата. Например так:
8 9 10 | float a=5, b=4; int x; x=a/b; // получим x=1, т.к. x должен быть целым числом (тип int) |
Еще одним довольно простым и очень распространенным вариантом преобразования типов данных является преобразование численного типа в строчный посредством «склеивания». Сделать это можно так:
11 12 13 | float a=5.4; String str; str=+a; |
И последнее: операции с указанием результирующего типа данных (в скобках) считаются явным преобразованием (приведением) типов (в моих примерах это строки 4, 5, 6 и 7), а операции, при которых тип данных явно не указываются зовутся преобразованием неявным (в примере это строки 3, 10 и 13).
Вот.