!! Тут доп инфа я не знаю нужна ли она в ответе!!

Любой действительный интервал содержит бесконечное множество чисел.

<aside> 💡 Любое вещественное число A может быть записано в экспоненциальной форме: $A=±m⋅q^p$, где m — мантисса числа; q — основание системы счисления; р — порядок числа. //альтернативное опрделение $(-1)^s × M × BE$, где s — знак, B-основание, E — порядок, а M — мантисса.

</aside>

Например, число 472000000 может быть представлено так:

Нормализованной формой называется форма, в которой мантисса десятичного числа принимает значения от 1 (включительно) до 10 (не включительно), а мантисса двоичного числа принимает значения от 1 (включительно) до 2 (не включительно). То есть в мантиссе слева от запятой до применения порядка находится ровно один знак. В такой форме любое число (кроме 0) записывается единственным образом.

Float

Double

//Чтобы получить актуальное значение порядка нужно вычесть из него сдвиг. Сдвиг можно получить по формуле $2^{b−1}−1,$ где b — число бит, отведенное на хранение порядка (доп. инфа)

Операции и преобразования

Floating-point types in C support most of the same arithmetic and relational operators as integer types; x > y, x / y, x + y all make sense when x and y are floats. If you mix two different floating-point types together, the less-precise one will be extended to match the precision of the more-precise one; this also works if you mix integer and floating point types as in 2 / 3.0. Unlike integer division, floating-point division does not discard the fractional part (although it may produce round-off error: 2.0/3.0 gives 0.66666666666666663, which is not quite exact). Be careful about accidentally using integer division when you mean to use floating-point division: 2/3 is 0. Casts can be used to force floating-point division . Some operators that work on integers will not work on floating-point types. These are % (use modf from the math library if you really need to get a floating-point remainder) and all of the bitwise operators ~, <<, >>, &, ^ , and |.

  1. Если какой-либо из операндов имеет тип long double, то другой приводится к long double.
  2. В противном случае, если какой-либо из операндов имеет тип double, то другой приводится к double.
  3. В противном случае, если какой-либо из операндов имеет тип float, то другой приводится к float.