Поделиться через


remainder, , remainderfremainderl

Вычисляет остаток от частного двух чисел с плавающей запятой, округленного до ближайшего целого значения.

Синтаксис

double remainder( double x, double y );
float remainderf( float x, float y );
long double remainderl( long double x, long double y );
#define remainder(X, Y) // Requires C11 or higher

float remainder( float x, float y ); /* C++ only */
long double remainder( long double x, long double y ); /* C++ only */

Параметры

x
Числитель.

y
Знаменатель.

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

Остаток от деления x / y в виде числа с плавающей запятой. Если значение y равно 0,0, функция remainder возвращает NaN (не число) без вызова прерывания. Сведения о представлении тихого NaN printf семьей см. в разделеprintf , , _printf_l, . _wprintf_lwprintf

Замечания

Функции remainder вычисляют оставшуюся часть r x / y с плавающей запятой таким образом, что x = n * y + r, где n находится целое число, ближайшее к значению x / y и n даже при каждом разе |n - x / y| = 1/2. Если r = 0имеет r тот же знак, что xи .

Поскольку C++ допускает перегрузку, можно вызывать перегрузки remainder, которые принимают и возвращают значения float или long double. Если вы не используете <макрос tgmath.h> для вызова этой функции remainder , всегда принимает два double аргумента и возвращает значение double.

Если вы используете <макрос tgmath.h>remainder() , тип аргумента определяет, какая версия функции выбрана. Дополнительные сведения см . в разделе "Математика с универсальным типом".

По умолчанию глобальное состояние этой функции ограничивается приложением. Чтобы изменить это поведение, см . статью "Глобальное состояние" в CRT.

Требования

Function Обязательный заголовок (C) Обязательный заголовок (C++)
remainder, , remainderfremainderl <math.h> <cmath> или <math.h>
remainderМакрос <tgmath.h>

Дополнительные сведения о совместимости см. в разделе Совместимость.

Пример

// crt_remainder.c
// This program displays a floating-point remainder.

#include <math.h>
#include <stdio.h>

int main( void )
{
   double w = -10.0, x = 3.0, z;

   z = remainder(w, x);
   printf("The remainder of %.2f / %.2f is %f\n", w, x, z);
}
The remainder of -10.00 / 3.00 is -1.000000

См. также

Поддержка математических и плавающих точек
ldiv, lldiv
imaxdiv
fmod, fmodf
remquo, , remquofremquol