Deklaracja

double ceil (double x); float ceilf(float x); long double ceill(long double x);

double floor (double x); float floorf(float x); long double floorl(long double x);

double nearbyint (double x); float nearbyintf(float x); long double nearbyintl(long double x);

double rint (double x); float rintf(float x); long double rintl(long double x);

long lrint (double x); long lrintf(float x); long lrintl(long double x);

long long llrint (double x); long long llrintf(float x); long long llrintl(long double x);

double round (double x); float roundf(float x); long double roundl(long double x);

long lround (double x); long lroundf(float x); long lroundl(long double x);

long long llround (double x); long long llroundf(float x); long long llroundl(long double x);

double trunc (double x); float truncf(float x); long double truncl(long double x);

double modf (double x, double *ptr); float modff(float x, float *ptr); long double modfl(long double x, long double *ptr);

Plik nagłówkowy math.h

Argumenty x argumenty funkcji ptr wskaźnik do części ułamkowej

Opis Funkcje z przyrostkami "f" i "l" to inne wersje odpowiedniej funkcji bez przyrostka operujące na innych typach danych. Ponadto, funkcje z przedrostkiem "l" lub "ll" to inne wersje odpowiadających funkcji bez przedrostka zwracające wartości typu long lub long long. 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 oraz do wszystkich wersji z przedrostkiem jeżeli takie istnieją.

Funkcje obliczają następujące wartości: ceil - sufit argumentu, czyli najmniejszą liczbę całkowitą większą lub równą x, floor - podłogę argumentu, czyli największa liczba całkowita mniejsza lub równa x, nearbyint - argument zaokrąglony do liczby całkowitej zgodnie z przyjętym kierunkiem zaokrąglania, rint - podobnie jak nearbyint argument zaokrąglony do liczby całkowitej zgodnie z przyjętym kierunkiem zaokrąglania, przy czym możliwe jest zaistnienie błędu niedokładności, round - argument zaokrąglony do najbliższej liczby całkowitej; jeżeli istnieją dwie takie liczby zaokrągla do tej o większym module, trunc - argument zaokrąglony w stronę zera, tj. liczbę całkowitą o największym module mniejszym lub równym modułowi x, modf - argument zaokrąglony w stronę zera (jak trunc) i dodatkowo w zmiennej wskazywanej przez ptr zapisuje część ułamkową argumentu.

Wartość zwracana Wartości odpowiednich funkcji zgodnie z opisem powyżej.

W przypadku funkcji z przedrostkami "l" i "ll", jeżeli wartość nie mieści się w typie to zwracana wartość jest nieokreślona.

Przykład użycia

Przykład użycia modfstackoverflow question: how-to-separate-float-into-an-integer-and-a-fractional-partcppreference C modf

#include #include

int main( void) { double floating = 3.40; double fractional; double integer;

fractional = modf(floating, &integer); printf ("%f = %f + %f\n", floating, integer, fractional); // when using printf, there are no floats

return 0; }

kompilujemy

gcc m.c -Wall -Wextra

uruchamiamy

./a.out

Wynik:

3.400000 = 3.000000 + 0.400000

Uwagi Wersje funkcji z przyroskiem "f" i "l" (tzn. wersje operujące na zmiennych typu float i long double) zostały wprwoadzone dopiero w standardzie C99. Również funkcje nearbyint, rint, lrint, llrint, lround oraz llround zostały wprowadzone dopiero w standardzie C99.

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