logo
Методичка_Программирование_1

2.3.Вещественные числа и операции над ними

В языке С предусмотрено два типа вещественных чисел – float и double. Эти типы определяются стандартом на представление вещественных чисел в компьютерах и присутствуют во многих языка программирования. Тип float занимает 32 бита, а double – 64. Для многих расчетов достаточно диапазона чисел представимых с помощью типа float. Тип double позволяет работать с еще большим диапазоном, однако надобность в нем возникает довольно редко.

Рассмотрим примеры работы с вещественными числами, приведенные на рис. 6.

Рис. 6 Пример программы

В 4 строке мы объявляем переменную «a» и производим ее инициализацию, т.е. сразу же записываем в нее конкретное значение. В 5 строке мы объявляем переменную «b» и инициализируем ее. Обратите внимание на разницу выражений в 4 и 5 строках. Во втором случае после цифры пять стоит десятичная точка. Когда в константе присутствует десятичная точка, компилятор воспринимает ее как вещественное число. В 4 строке число 5 будет воспринято как целое, в результате чего операция деления будет целочисленной и даст результат 2. В 5 строке, поскольку один из операндов вещественный, то операция деления будет вещественной, и результат будет равен 2.5.

Над вещественными числами можно проводить 4 арифметические операции: +, –, *, /. Операция нахождения остатка над вещественными числами не применима.

В 7 и 8 строках приведены выражения, в которых есть как целые, так и вещественные числа.

В 7 строке сначала выполняется вычитание в скобках, результат будет вещественный и равен 0.5. После этого будет выполнено умножение целочисленной константы на вещественное число, в результате получится вещественная 1. После этого нужно записать вещественное число в целую переменную c. В таких случаях компилятор автоматически добавляет операцию преобразования типа. Вещественное число преобразуется к целому отбрасыванием дробной части.

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

В 8 строке указана операция преобразования числа, полученного после вычитания, к целому типу. Число 0.5, полученное после вычитания, после преобразования к целому типу будет равно 0. В результате вычислений переменная «d» будет также равна 0.

В 10 строке вычисляется косинус числа, находящегося в переменной «d». Эта функция не является операцией языка С, а реализована в стандартной библиотеке «math». Подключение этой библиотеку показано в 1 строке программы (для компилятора gcc стандартные библиотеки подключаются автоматически, эту строку можно не указывать).

Библиотека математических операций «math» содержит большое количество математических функций вещественных чисел. Список функций большой, и при необходимости можно подобрать нужную функцию по [1].