Scroll to navigation

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():

_BSD_SOURCE || _SVID_SOURCE || _XOPEN_SOURCE >= 600 || _ISOC99_SOURCE || _POSIX_C_SOURCE >= 200112L;
или cc -std=c99

ОПИСАНИЕ

Функция fmod() вычисляет остаток деления числа с плавающей запятой 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).

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

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

ДЕФЕКТЫ

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

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

remainder(3)

2012-03-15