remainder, remainderf, remainderl

Calcola il resto del quoziente di due valori a virgola mobile, arrotondati al valore integrale più vicino.

Sintassi

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 */

Parametri

x
Numeratore.

y
Denominatore.

Valore restituito

Resto a virgola mobile di x / y. Se il valore di y è 0,0, remainder restituisce un valore NaN silenzioso (QNaN). Per informazioni sulla rappresentazione di un NaN non interattiva per la printf famiglia, vedereprintf , _printf_l, wprintf, _wprintf_l.

Osservazioni:

Le remainder funzioni calcolano il resto r a virgola mobile di x / y in modo che , dove n è l'intero più vicino nel valore a x / y e n sia anche ogni volta |n - x / y| = 1/2che x = n * y + r. Quando r = 0, r ha lo stesso segno di x.

Dato che C++ consente l'overload, è possibile chiamare degli overload di remainder che accettino e restituiscano valori float o long double. In un programma C, a meno che non si usi la <macro tgmath.h> per chiamare questa funzione, remainder accetta sempre due double argomenti e restituisce un oggetto double.

Se si utilizza la <macro tgmath.h>remainder() , il tipo dell'argomento determina quale versione della funzione è selezionata. Per informazioni dettagliate, vedere La matematica generica dei tipi.

Per impostazione predefinita, lo stato globale di questa funzione è limitato all'applicazione. Per modificare questo comportamento, vedere Stato globale in CRT.

Requisiti

Funzione Intestazione obbligatoria (C) Intestazione obbligatoria (C++)
remainder, remainderf, remainderl <math.h> <cmath> o <math.h>
remainder Macro <tgmath.h>

Per informazioni sulla compatibilità, vedere Compatibilità.

Esempio

// 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

Vedi anche

Supporto matematico e a virgola mobile
ldiv, lldiv
imaxdiv
fmod, fmodf
remquo, remquof, remquol