Оглавление
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
, но записывает q
в quot
Float #
frexp #
double frexp(double x, int* exp)
float frexpf(float x, int* exp)
Разбить число
x
на основание (0.5.. 1) и экспоненту: x = s * 2^e
, где e
запишется в exp
, а s
вернётся из функции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
, иначе 0fmax #
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)
, abs(double/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)
true
, если x == INFINITY
isfinite #
isfinite(x)
true
, если x != INFINITY
isnan #
isnan(x)
true
, если x == NAN
isnormal #
isnormal(x)
true
, если x != NAN
и x != INFINITY
и x != 0