C/fmod

Z Wikibooks, biblioteki wolnych podręczników.
< C
Przejdź do nawigacji Przejdź do wyszukiwania

Deklaracja[edytuj]

double      fmod (double      x, double      y);
float       fmodf(float       x, float       y);
long double fmodl(long double x, long double y);

double      remainder (double      x, double      y);
float       remainderf(float       x, float       y);
long double remainderl(long double x, long double y);

double      remquo (double      x, double      y, int *quo);
float       remquof(float       x, float       y, int *quo);
long double remquol(long double x, long double y, int *quo);

Plik nagłówkowy[edytuj]

math.h

Argumenty[edytuj]

x, y
argumenty ilorazu
quo
wskaźnik do części

Opis[edytuj]

Funkcje z przyrostkami "f" i "l" to inne wersje odpowiedniej funkcji bez przyrostka operujące na innych typach danych. Z tego powodu w poniższym opisie odwołanie do konkretnej funkcji będzie oznaczać odwołanie się do wszystkich 3 wersji bez lub z przyrostkiem.

Funkcja fmod oblicza resztę z dzielenia x przez y, tzn. taką liczbę , że jeżeli y jest różne od zera, zachodzi:

.

Funkcja remainder zwraca resztę z dzielenia x przez y wymaganą przez IEC 60559, tzn. taką liczbę , że jeżeli y jest różne od zera, zachodzi: , gdzie jest liczbą całkowitą najbliższą wartości . Jeżeli istnieją dwie takie liczby całkowite jest parzysta.

Funkcja remquo zwraca resztę z dzielenia x przez y jak funkcja remainder i dodatkowo, zapisuje w zmiennej wskazywanej przez quo wartość przystającą modulo do wartości bezwzględnej wyrażenia , gdzie jest wartością zależną od implementacji nie mniejszą niż 3.

Wartość zwracana[edytuj]

Wartości odpowiednich funkcji zgodnie z opisem powyżej. Jeżeli y jest równe zero funkcja może zwrócić zero lub ustawić wartość zmiennej errno na EDOM.

Przykład użycia[edytuj]

Uwagi[edytuj]

Wersje funkcji z przyrostkiem "f" i "l" (tzn. wersje operujące na zmiennych typu float i long double) zostały wprowadzone dopiero w standardzie C99. Również funkcje remainder oraz remquo zostały wprowadzone dopiero w standardzie C99.

W przypadku użycia funkcji matematycznych może zaistnieć konieczność podania odpowiedniego argumentu linkerowi, aby ten połączył program z biblioteką matematyczną. Np. na systemach GNU/Linux jest to -lm.