fmod
Table des matières
Retour à l'index
NOM
fmod, fmodf, fmodl - Fonction modulo réel
BIBLIOTHÈQUE
Bibliothèque de math (libm, -lm)
SYNOPSIS
#include <math.h>
double fmod(double x, double y);
float fmodf(float x, float y);
long double fmodl(long double x, long double y);
Exigences de macros de test de fonctionnalités pour la glibc (consulter
feature_test_macros(7)) :
fmodf(), fmodl() :
_ISOC99_SOURCE || _POSIX_C_SOURCE >= 200112L
|| /* Depuis la glibc 2.19 : */ _DEFAULT_SOURCE
|| /* glibc <= 2.19 : */ _BSD_SOURCE || _SVID_SOURCE
DESCRIPTION
Ces fonctions calculent le reste, en virgule flottante, de la division de
x par y. La valeur renvoyée est x - n * y, où n est le
quotient x / y, arrondi à l'entier inférieur en valeur absolue.
Pour obtenir le modulo, plus précisément, le plus petit résidué positif,
vous devez ajuster le résultat de fmod de cette manière :
z = fmod(x, y);
if (z < 0)
z += y;
Une autre manière pour exprimer cela estfmod(fmod(x, y) + y, y), mais le
second fmod() coûte habituellement beaucoup plus que la première branche.
VALEUR RENVOYÉE
En cas de réussite, ces fonctions renvoient la valeur x - n*y,
pour un entier n tel que la valeur de retour a le même signe que x et
une norme inférieure à la norme de y.
Si x n’est pas un nombre, un NaN est renvoyé.
Si x est une valeur infinie, une erreur de domaine est produite et un NaN
est renvoyé.
Si y vaut zéro, une erreur de domaine est produite et un NaN est renvoyé.
Si x vaut +0 (resp. -0), et y n'est pas nul, +0 (resp. -0) est
renvoyé.
ERREURS
Voir math_error(7) pour savoir comment déterminer si une erreur s'est
produite lors de l'appel d'une de ces fonctions.
Les erreurs suivantes peuvent se produire :
- Erreur de domaine : x est une valeur infinie
-
errno prend la valeur EDOM (mais consultez la section BOGUES). Une
exception indiquant une virgule flottante incorrecte (FE_INVALID) est
levée.
- Erreur de domaine : y est nul.
-
errno prend la valeur EDOM. Une exception de virgule flottante non
valable (FE_INVALID) est levée.
ATTRIBUTS
Pour une explication des termes utilisés dans cette section, consulter
attributes(7).
| Interface | Attribut | Valeur
|
|
fmod(),
fmodf(),
fmodl()
| Sécurité des threads | MT-Safe
|
STANDARDS
C11, POSIX.1-2008.
HISTORIQUE
C99, POSIX.1-2001.
La variante renvoyant double est également conforme à SVr4, 4.3BSD et
C89.
BOGUES
Avant la glibc 2.10, l'implémentation de la glibc ne définissait pas
errno à EDOM lorsqu'une erreur de domaine survenait pour un x
infini.
EXEMPLES
L'appel fmod(372, 360) renvoie 348.
L'appel fmod(-372, 360) renvoie -12.
L'appel fmod(-372, -360) renvoie aussi -12.
VOIR AUSSI
remainder(3)
TRADUCTION
La traduction française de cette page de manuel a été créée par
Christophe Blaess <https://www.blaess.fr/christophe/>,
Stéphan Rafin <stephan.rafin@laposte.net>,
Thierry Vignaud <tvignaud@mandriva.com>,
François Micaux,
Alain Portal <aportal@univ-montp2.fr>,
Jean-Philippe Guérard <fevrier@tigreraye.org>,
Jean-Luc Coulon (f5ibh) <jean-luc.coulon@wanadoo.fr>,
Julien Cristau <jcristau@debian.org>,
Thomas Huriaux <thomas.huriaux@gmail.com>,
Nicolas François <nicolas.francois@centraliens.net>,
Florentin Duneau <fduneau@gmail.com>,
Simon Paillard <simon.paillard@resel.enst-bretagne.fr>,
Denis Barbier <barbier@debian.org>,
David Prévot <david@tilapin.org>,
Cédric Boutillier <cedric.boutillier@gmail.com>
et
Jean-Pierre Giraud <jean-pierregiraud@neuf.fr>
Cette traduction est une documentation libre ; veuillez vous reporter à la
GNU General Public License version 3
concernant les conditions de copie et
de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.
Si vous découvrez un bogue dans la traduction de cette page de manuel,
veuillez envoyer un message à
Index
- NOM
-
- BIBLIOTHÈQUE
-
- SYNOPSIS
-
- DESCRIPTION
-
- VALEUR RENVOYÉE
-
- ERREURS
-
- ATTRIBUTS
-
- STANDARDS
-
- HISTORIQUE
-
- BOGUES
-
- EXEMPLES
-
- VOIR AUSSI
-
- TRADUCTION
-
This document was created by
man2html,
using the manual pages.
Time: 05:06:13 GMT, September 19, 2025