modf
, , modff
modfl
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 , , modff modfl |
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