C++ Builder: преобразование данных

Эта заметка посвящена преобразованию данных. Сразу скажу, я не ставлю перед собой цель рассмотреть все варианты преобразования данных в 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).

Вот.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *