modf
, , modff
modfl
Rozdělí hodnotu s plovoucí desetinnou čárkou na zlomkové a celočíselné části.
Syntaxe
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
Hodnota s plovoucí desetinou čárkou
intptr
Ukazatel na uloženou celočíselnou část
Vrácená hodnota
Tato funkce vrátí podepsanou zlomkovou část .x
Nevrátí se žádná chyba.
Poznámky
Funkce modf
rozdělují hodnotu x
s plovoucí desetinnou čárkou na zlomkové a celočíselné části, z nichž každá má stejné znaménko jako x
. Vrátí se podepsaná desetinná část x
. Celočíselná část je uložena jako hodnota s plovoucí desetinnou čárkou na intptr
hodnotě .
modf
má implementaci, která používá streamovaná rozšíření SIMD 2 (SSE2). Informace _set_SSE2_enable
a omezení týkající se použití implementace SSE2
Jazyk C++ umožňuje přetížení, takže můžete volat přetíženímodf
, která přebírají a vracejí nebo long double
parametryfloat
. V programu modf
jazyka C vždy přebírá dvě dvojité hodnoty a vrací dvojitou hodnotu.
Ve výchozím nastavení je globální stav této funkce vymezen na aplikaci. Chcete-li toto chování změnit, přečtěte si téma Globální stav v CRT.
Požadavky
Rutina | Požadovaný hlavičkový soubor |
---|---|
modf , , modff modfl |
C: <math.h> C++: <cmath> nebo <math.h> |
Další informace o kompatibilitě najdete v tématu Kompatibilita.
Příklad
// 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
Viz také
Podpora pro matematiku a plovoucí desetinou čárku
frexp
ldexp