Константы с плавающей запятой в C
"Константа с плавающей запятой — это десятичное число, которое представляет знаковое вещественное число. Представление знакового вещественного числа включает в себя целочисленную часть, дробную часть и экспоненту. Константы с плавающей запятой служат для представления значений с плавающей запятой, которые не могут быть изменены.
Синтаксис
floating-point-constant
:
fractional-constant
exponent-part
opt floating-suffix
opt
digit-sequence
exponent-part
floating-suffix
необ.
fractional-constant
:
digit-sequence
opt . digit-sequence
digit-sequence
.
exponent-part
:
e sign
opt digit-sequence
E sign
opt 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