Sdílet prostřednictvím


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 intptrhodnotě .

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