Посмотр рубрик

Float числа

math.h #

Округление #

trunc #

double trunc(double x)
float truncf(float x)
Отбросить дробную часть

ceil #

double ceil(double x)
float ceilf(float x)
Округлить вверх

floor #

double floor(double x)
float floorf(float x)
Округлить вниз

round, lround, llround #

double round(double x),float roundf(float x)
long lround(double x), long lroundf(float x)
long long llround(double x), long long llroundf(float x)
Округлить до ближайшего целого, половины округляются от нуля

Деление и остаток #

fmod #

double fmod(double x, double y)
float fmodf(float x, float y)
Вычислить остаток от деления x/y, который вернётся как f: x = q * y + f, где q = x / y с отбрасыванием остатка

remainder #

double remainder(double x, double y)
float remainderf(float x, float y)
Вычислить остаток от деления x/y, который вернётся как f: x = q * y + f, где q - ближайшее целое к x / y, а половины округляются к ближайшему чётному

remquo #

double remquo(double x, double y, int* quot)
float remquof(float x, float y, int* quot)
Как remainder, но записывает в quot знак и как минимум три младших бита частного q. Полное значение частного стандарт не гарантирует

Float #

frexp #

double frexp(double x, int* exp)
float frexpf(float x, int* exp)
Разбить число x на мантиссу и экспоненту: x = s * 2^e, где e запишется в exp, а s вернётся из функции. Для ненулевого x модуль s находится в диапазоне [0.5, 1)

ldexp #

double ldexp(double x, int exp)
float ldexpf(float x, int exp)
"Собрать" число с плавающей точкой, вернёт x * 2^exp

modf #

double modf(double x, double* intpart)
float modff(float x, float* intpart)
Разбить x на целую и дробную части: целая запишется в intpart, дробная вернётся из функции

Вычисления #

copysign #

double copysign(double x, double y)
float copysignf(float x, float y)
Вернёт значение величиной x со знаком числа y

fdim #

double fdim(double x, double y)
float fdimf(float x, float y)
Вернёт разность x - y, если x > y, иначе 0

fmax #

double fmax(double x, double y)
float fmaxf(float x, float y)
Вернёт большее из чисел x и y

fmin #

double fmin(double x, double y)
float fminf(float x, float y)
Вернёт меньшее из чисел x и y

fabs, abs #

double fabs(double x), float fabsf(float x)
Вычислить модуль числа

fma #

double fma(double x, double y, double z)
float fmaf(float x, float y, float z)
Вычислить x * y + z

Статус #

INFINITY #

INFINITY
Положительная бесконечность типа float. Её можно сравнить через ==, но для проверки обоих знаков бесконечности удобнее использовать isinf(x)

NAN #

NAN
Константа "ошибка числа", можно присвоить к float числу. Сравнить с числом нельзя, используй функцию isnan(x)

isinf #

isinf(x)
Ненулевое значение, если x равен положительной или отрицательной бесконечности

isfinite #

isfinite(x)
Ненулевое значение, если x является конечным числом, то есть не NaN и не бесконечность

isnan #

isnan(x)
Ненулевое значение, если x является NaN. Обычное сравнение с NAN не работает, потому что NaN не равен даже самому себе

isnormal #

isnormal(x)
Ненулевое значение, если x является нормальным конечным числом: не нулём, не NaN, не бесконечностью и не subnormal-числом

Дополнительно #

Дополнительный контент доступен владельцам набора GyverKIT и по подписке, подробнее читай здесь. Блок содержит:

  • Тезисы, Вопросы, Задания

Полезные страницы #


(1 голос)
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Прокрутить вверх