Оглавление
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^expmodf #
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 со знаком числа yfdim #
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 и yfmin #
double fmin(double x, double y)float fminf(float x, float y)
Вернёт меньшее из чисел
x и yfabs, 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 и по подписке, подробнее читай здесь. Блок содержит:
- Тезисы, Вопросы, Задания
Полезные страницы #
- Набор GyverKIT – наш большой стартовый набор Arduino, продаётся в России
- Каталог ссылок на дешёвые Ардуины, датчики, модули и прочие железки с AliExpress
- Обратная связь – сообщить об ошибке в уроке или предложить дополнение по тексту (alex@alexgyver.ru)
- Поддержать автора за работу над уроками