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 );

Аргументы:

x
Делимое число.
y
Делитель.

Библиотека:

libm

Описание:

Функции fmod() и fmodf() вычисляют остаток от операции x (mod y) в виде числа с плавающей точкой, который является остатком от x / y, даже если частное x / y не представимо.

Возвращаемое значение:

Остаток, x - (i × y), для некоторого целочисленного i при котором, если y не равен нулю, результат имеет тот же знак, что x и значение, меньшее чем значение .

Для корректного значения, которое может вызвать ошибку underflow, эти функции возвращают 0.0. Возвращаемым значением при y равным нулю является NaN. Возвращаемым значением при x равным бесконечности является NaN.


Note: В случае возникновения ошибки, эти функции возвращают 0, который также может быть и достоверным математическим результатом. Если вам необходимо проверить, возникла ли ошибка, установите errno в 0, вызовите функцию, и затем снова проверьте errno. Эти функции не изменяют errno в случае отсутствия ошибок.

Примеры:

#include <stdio.h>
#include <math.h>
#include <stdlib.h>
int main( void )
{
printf( "%f\n", fmod( 4.5, 2.0 ) );
printf( "%f\n", fmod( -4.5, 2.0 ) );
printf( "%f\n", fmod( 4.5, -2.0 ) );
printf( "%f\n", fmod( -4.5, -2.0 ) );
return (EXIT_SUCCESS);
}

Код генерирует следующий вывод:

$ ./a.out 0.500000 -0.500000 0.500000 -0.500000

Классификация:

ANSI, POSIX 1003.1

Безопасность использования
Точка остановки потока
Нет
Обработчик прерываний
Нет
Обработчик сигналов
Нет
В потоке
Да

Тематические ссылки:

ceil(), div(), fabs(), floor()




Предыдущий раздел: Описание API математической библиотеки