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].
- Е. А. Альтман основы языка с омск 2012
- Введение
- Лабораторная работа 1 Изучение среды программирования
- Теоретические сведения
- 1.1.Среда программирования
- Задание к работе
- Содержание отчета
- Контрольные вопросы
- Лабораторная работа 2 Переменные и операции над ними
- Теоретические сведения
- 2.1.Основные определения
- 2.2.Операции над целыми числами
- 2.3.Вещественные числа и операции над ними
- Задание к работе
- Содержание отчета
- Контрольные вопросы
- Лабораторная работа 3 Конструкция выбора, логические и другие операции
- Теоретические сведения
- 3.1.Конструкция выбора и составная инструкция
- 3.2.Операторы отношения и логические операторы
- 3.3.Остальные операторы
- Задание к работе
- Содержание отчета
- Контрольные вопросы
- Лабораторная работа 4 Конструкции циклов
- Теоретические сведения
- 4.1.Цикл while
- 4.2.Цикл for
- 4.3.Конструкция в конструкции
- Задание к работе
- 5.2.Свойства массивов
- 5.3.Строки
- 5.4.Структуры
- Задание к работе
- 6.2.Операции с указателями
- 6.3.Указатели и массивы
- 6.4.Указатели и структуры
- Задание к работе
- 7.2.Использование указателей для передачи результата и аргумента
- Задание к работе
- Содержание отчета
- Контрольные вопросы
- Библиографический список
- 644046, Г. Омск, пр. Маркса, 35