Udostępnij za pośrednictwem


modf, , modffmodfl

Dzieli wartość zmiennoprzecinkowa na części ułamkowe i całkowite.

Składnia

double modf( double x, double * intptr );
float modff( float x, float * intptr );
long double modfl( long double x, long double * intptr );
float modf( float x, float * intptr );  // C++ only
long double modf( long double x, long double * intptr );  // C++ only

Parametry

x
Wartość zmiennoprzecinkowa.

intptr
Wskaźnik do przechowywanej części całkowitej.

Wartość zwracana

Ta funkcja zwraca podpisaną część ułamkową elementu x. Nie ma zwracanego błędu.

Uwagi

Funkcje modf dzielą wartość x zmiennoprzecinkową na części ułamkowe i całkowite, z których każdy ma ten sam znak co x. Zwracana jest podpisana część ułamkowa obiektu x . Część całkowita jest przechowywana jako wartość zmiennoprzecinkowa na intptr.

modf ma implementację korzystającą z rozszerzeń SIMD przesyłania strumieniowego 2 (SSE2). Zobacz _set_SSE2_enable , aby uzyskać informacje i ograniczenia dotyczące korzystania z implementacji SSE2.

Język C++ umożliwia przeciążenie, dzięki czemu można wywoływać przeciążenia tych parametrów modf , które przyjmują i zwracają float lub long double parametry. W programie modf języka C zawsze przyjmuje dwie podwójne wartości i zwraca podwójną wartość.

Domyślnie stan globalny tej funkcji jest zakresem aplikacji. Aby zmienić to zachowanie, zobacz Stan globalny w CRT.

Wymagania

Procedura Wymagany nagłówek
modf, , modffmodfl C: <math.h>

C++: lub <cmath><math.h>

Aby uzyskać więcej informacji o zgodności, zobacz Zgodność.

Przykład

// crt_modf.c

#include <math.h>
#include <stdio.h>

int main( void )
{
   double x, y, n;

   x = -14.87654321;      /* Divide x into its fractional */
   y = modf( x, &n );     /* and integer parts            */

   printf( "For %f, the fraction is %f and the integer is %.f\n",
           x, y, n );
}
For -14.876543, the fraction is -0.876543 and the integer is -14

Zobacz też

Obsługa obliczeń matematycznych i zmiennoprzecinkowych
frexp
ldexp