Arch manual pages

FMOD(3) Руководство программиста Linux FMOD(3)

ИМЯ

fmod, fmodf, fmodl - функция получения остатка от деления числа с плавающей запятой

ОБЗОР

#include <math.h>
 
double fmod(double x, double y);
 
float fmodf(float x, float y);
 
long double fmodl(long double x, long double y);
 
Компонуется при указании параметра -lm.
 

Требования макроса тестирования свойств для glibc (см. feature_test_macros(7)):
 
fmodf(), fmodl():
_ISOC99_SOURCE || _POSIX_C_SOURCE >= 200112L
|| /* начиная с glibc 2.19: */ _DEFAULT_SOURCE
|| /* версии glibc <= 2.19: */ _BSD_SOURCE || _SVID_SOURCE

ОПИСАНИЕ

Эти функции вычисляют остаток деления числа с плавающей запятой x на y. Возвращаемое значение: x - n * y, где n — частное x / y, округлённое к нулю до ближайшего целого числа.

ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ

При успешном выполнении функции возвращают значение x -  n*y для некоторого целого n; при этом возвращаемое значение имеет тот же знак что и x, а абсолютное значение меньше абсолютного значения y.
 
Если x или y равно NaN, то будет возвращено NaN.
 
Если x стремится к бесконечности, то будет сгенерирована ошибка выхода за пределы области, а в качестве результата будет возвращено NaN.
 
Если y равно 0, то будет сгенерирована ошибка выхода за пределы области, а в качестве результата будет возвращено NaN.
 
Если x равно +0 (-0) и y не равно, то возвращается +0 (-0).

ОШИБКИ

Смотрите math_error(7), чтобы определить, какие ошибки могут возникать при вызове этих функций.
Могут возникать следующие ошибки:
Ошибка области: x стремится к бесконечности
errno устанавливается в EDOM (но см. ДЕФЕКТЫ). Возникает исключение неправильной плавающей точки ( FE_INVALID).
Ошибка области: y равно 0
errno устанавливается в EDOM. Вызывается исключение неправильной плавающей точки ( FE_INVALID).

АТРИБУТЫ

Описание терминов данного раздела смотрите в attributes(7).
Интерфейс Атрибут Значение
fmod(), fmodf(), fmodl() Безвредность в нитях MT-Safe

СООТВЕТСТВИЕ СТАНДАРТАМ

C99, POSIX.1-2001, POSIX.1-2008.
 
Вариант, возвращающий значение типа double, также соответствует SVr4, 4.3BSD, C89.

ДЕФЕКТЫ

До версии 2.10 в реализации glibc при возникновении ошибки области переменная errno не устанавливалась в значение EDOM для бесконечного x.

СМОТРИТЕ ТАКЖЕ

remainder(3)
2016-03-15