fmod(3) | Library Functions Manual | fmod(3) |
NUME
fmod, fmodf, fmodl - funcție de rest în virgulă mobilă
BIBLIOTECA
Biblioteca de matematică (libm, -lm)
SINOPSIS
#include <math.h>
double fmod(double x, double y); float fmodf(float x, float y); long double fmodl(long double x, long double y);
fmodf(), fmodl():
_ISOC99_SOURCE || _POSIX_C_SOURCE >= 200112L || /* Începând cu glibc 2.19: */ _DEFAULT_SOURCE || /* glibc <= 2.19: */ _BSD_SOURCE || _SVID_SOURCE
DESCRIERE
Aceste funcții calculează restul în virgulă mobilă al împărțirii lui x la y. Valoarea returnată este x - n * y, unde n este cuplul x / y, rotunjit spre zero la un număr întreg.
Pentru a obține modulul, mai exact, cel mai mic rest pozitiv, va trebui să ajustați rezultatul din fmod astfel:
z = fmod(x, y); if (z < 0) z += y;
Un mod alternativ de a exprima acest lucru este cu fmod(fmod(x, y) + y, y), dar al doilea fmod() costă de obicei mult mai mult decât o ramură.
VALOAREA RETURNATĂ
În caz de succes, aceste funcții returnează valoarea x - n*y, pentru un număr întreg n, astfel încât valoarea returnată să aibă același semn ca și x și o mărime mai mică decât mărimea lui y.
Dacă x sau y nu este un număr („Not a Number”: NaN), se returnează un NaN.
Dacă x este un infinit, apare o eroare de domeniu și se returnează un NaN.
Dacă y este zero, se produce o eroare de domeniu și se returnează un NaN.
Dacă x este +0 (-0), iar y nu este zero, se returnează +0 (-0).
ERORI-IEȘIRE
Consultați math_error(7) pentru informații despre cum să determinați dacă a apărut o eroare la apelarea acestor funcții.
Pot apărea următoarele erori:
- Eroare de domeniu: x este infinitul
- errno este configurată la EDOM (dar vedeți secțiunea ERORI). Se generează o excepție de virgulă mobilă nevalidă (FE_INVALID).
- Eroare de domeniu: y este zero
- errno este configurată la EDOM. Se generează o excepție de virgulă mobilă nevalidă (FE_INVALID).
ATRIBUTE
Pentru o explicație a termenilor folosiți în această secțiune, a se vedea attributes(7).
Interfață | Atribut | Valoare |
fmod(), fmodf(), fmodl() | Siguranța firelor | MT-Safe |
STANDARDE
C11, POSIX.1-2008.
ISTORIC
C99, POSIX.1-2001.
Varianta care returnează double este, de asemenea, conformă cu SVr4, 4.3BSD, C89.
ERORI
Înainte de glibc 2.10, implementarea glibc nu stabilea errno la EDOM atunci când apărea o eroare de domeniu pentru un x infinit.
EXEMPLE
Apelul fmod(372, 360) returnează 348.
Apelul fmod(-372, 360) returnează -12.
Apelul fmod(-372, -360) returnează, de asemenea, -12.
CONSULTAȚI ȘI
TRADUCERE
Traducerea în limba română a acestui manual a fost făcută de Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>
Această traducere este documentație gratuită; citiți Licența publică generală GNU Versiunea 3 sau o versiune ulterioară cu privire la condiții privind drepturile de autor. NU se asumă NICIO RESPONSABILITATE.
Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți un e-mail la translation-team-ro@lists.sourceforge.net.
2 mai 2024 | Pagini de manual de Linux 6.8 |