2. Быстрый старт
Мы ввели новое понятие — константа. Константы используются в Си++ очень часто. Программисту нередко приходится применять значения, строго определенные создателями Windows и компилятора C++Builder, например, в качестве параметров функций стандартных библиотек или функций внутренних вызовов Windows. В случае с функцией FloatToStrFQ необходимость представлять число в различных форматах определяется разными значениями второго параметра, заучивать которые совсем не обязательно. Этим числам соответствуют определенные названия, которые запоминать гораздо легче и проще.
Теперь в тексте программы там, где определяется реакция на нажатие каждой кнопки, надо исправить последние операторы присваивания и представить значение с двумя цифрами после запятой. Закройте калькулятор, вернитесь в C++Builder и сделайте необходимые изменения.
Исправленные операторы будут выглядеть так:
«
Roubles->Texfc = FloatToStrF(Result,ffFixed,10,2);
Dollars->Text = FloatToStrF(Result,ffFixed,10,2);
Запустите программу, и теперь наконец пересчет 1000 рублей по курсу 30 даст нормальное значение 33,33.
Округление результата
Допустим, что нас не интересуют центы и копейки, и мы хотим получать только целочисленные результаты. Только желательно результат округлять, а не отбрасывать дробную часть. Согласитесь, что 9,99 рублей — не то же самое, что 9 рублей.
Как ни странно, но в C++Builder нет стандартной функции, округляющей значение дробного числа до ближайшего целого. Есть только функция floor(), которая просто убирает дробную часть, то есть работает как операция приведения (int).
Однако есть очень простая хитрость, чтобы добиться нужного результата. Чтобы получить округленное значение переменной х, надо записать:
floor(x+0.5) Этот старый испытанный способ работает безукоризненно.
Теперь можно исправить те операторы присваивания, где вычисляется результирующее значение: в переменную Result надо записывать округленные величины.
76