Поделиться через


Константы с плавающей запятой в C

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

Синтаксис

floating-point-constant:
fractional-constant exponent-partopt floating-suffixopt
digit-sequence exponent-part floating-suffixнеоб.

fractional-constant:
digit-sequenceopt . digit-sequence
digit-sequence .

exponent-part:
e signopt digit-sequence
E signopt digit-sequence

sign: один из
+ -

digit-sequence:
digit
digit-sequence digit

floating-suffix: один из
f l F L

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

В следующих примерах показаны некоторые формы констант и выражений с плавающей запятой.

15.75
1.575E1   /* = 15.75   */
1575e-2   /* = 15.75   */
-2.5e-3   /* = -0.0025 */
25E-4     /* =  0.0025 */

Константы с плавающей запятой имеют положительное значение, если перед ними не стоит знак "минус" (-). А этом случае знак "минус" интерпретируется как унарный арифметический оператор изменения знака. Константы с плавающей запятой относятся к типу float, double или long double.

Константы с плавающей запятой без суффикса f, F, l или L относятся к типу double. Если суффикс представлен буквой f или F, константа относится к типу float. Если суффикс представлен буквой l или L, константа относится к типу long double. Например:

10.0L  /* Has type long double  */
10.0   /* Has type double       */
10.0F  /* Has type float        */

Компилятор Майкрософт для C внутренне представляет long double так же, как и тип double. Но типы различаются. Дополнительные сведения о типах double, float и long double см. в статье Хранилище базовых типов.

Целочисленную часть константы с плавающей запятой можно опустить, как показано в следующих примерах. Число 0,75 можно выразить несколькими способами, например:

.0075e2
0.075e1
.075e1
75e-2

См. также

Константы в C