Проверьте, чтобы описания переменных теперь выглядели так:

float RoublesNum, RateValue;

float Result;

Если что-то сделано неправильно, например не поставлен пробел после float, вернитесь к предыдущему варианту текста программы с помощью комбинации клавиш Ctrl+Z (это так называемая команда Undo — «Откат», типичная для большинства приложений Windows) и попробуйте исправить текст заново.

Однако исправлению надо подвергнуть не только определения переменных, но и вызовы стандартных функций lntToStr() и StrTolnt(), которые предназначены для операций с целыми числами. Если такие изменения не внести, компилятор выдаст сообщение о том, что мы попытались осуществить недопустимое преобразование типов — из дробного в целое.

— А почему компилятор так строг? То он не замечает странных преобразований чисел, а то не позволяет сделать из дробного числа 1.0'целое число 1.

— Это нужно как раз затем, чтобы программисты внимательно следили за типами данных в своей программе и не допускали «самопроизвольного» неправильного преобразования значений. Тем более, что 1.0 переделать в единицу несложно, а вот если 3,14 округлить до целого числа 3 и ничего при этом программисту не сообщить, то скорее всего программа будет работать неправильно.

h00721.jpg

Если вы хотите преобразовать один тип в другой (это называется приведением типов), надо сделать это явно, указав тем самым компилятору, что вы понимаете, что творите, и тогда он успокоится.

Для преобразования одного типа в другой есть два пути. Первый — использовать стандартные функции C++Builder, как это было, например, в случае перевода числа в строку с помощью функции lntTo8tr(). Второй путь — указать в круглых скобках новый тип перед переменной или выражением, результатом которого будет значение определенного типа, например:

int m;

m = (int)3.14;

При этом никаких ошибок и предупреждений не появится, а переменная m получит значение 3.

72