Данные с плавающей точкой

Это семейство типов, значения которых являются вещественными(дробны-ми). Типы различаются диапазоном значений и объемом выделяемой под элемент памяти.

Память в байтах Память в разрядах Диапазон Точность представления (число разрядов мантиссы) Тип Basic Тип C
|x|<3,4...1038 6-7 single float
|x|<1,79...10308 double double
  |x|<1,79...10308   long double

Замечание. Типы doubleи long doubleв современных версиях языка C не отличаются. Тип long double введен для совместимости со стандартом языка, поэтому его употреблять не рекомендуется.

Литералы имеют 2 формы записи:

- обычную:

[+|-]<целая часть>.<дробная часть>

и экспоненциальную или показательную:

<мантисса>e<степень>,

где мантисса – это целое число или число с плавающей точкой в обычной форме, e означает 10 в степени (регистр не важен), степень – целое число.

Все литералы с плавающей точкой относятся к типу double.

Пример.

-2.3 5e-15 -2.245E12 0.0002 .0002Basic–>0.0002 среда корректирует)

В языке С допустима запись вида 26., чтобы избежать дополнительного преобразования.

Несмотря на различные формы записи литералов (внешнего представления) данные этого типа хранятся в памяти компьютера в форме с плавающей точкой (мантисса, порядок), отсюда и произошло название типа.

Замечание 1. В языке C разделитель между целой и дробной частью числа или мантиссы в виде десятичной точки может отсутствовать только при наличии степени (экспоненты). Если отсутствуют и точка, и степень, это означает литерал целого типа.

Замечание 2. Basic. Весьма важно!!! Во многих странах, в том числе и в нашей, в качестве десятичного разделителя используется символ ",". Более того, многие программы, например Microsoft Excel, используют в этом качестве установки ОС, которые могут быть изменены. В результате при вводе данных с клавиатуры или выводе их на экран (печать) используются установки ОС, однако при задании литералов в тексте программы необходимо употреблять в качестве разделителя точку. Эти проблемы также возникнут при работе с датами, временем, денежными единицами.