Dela via


modf, modffmodfl

Delar upp ett flyttalsvärde i delar av bråk och heltal.

Syntax

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

Parameterar

x
Flyttalsvärde.

intptr
Pekare till lagrad heltalsdel.

Returvärde

Den här funktionen returnerar den signerade deldelen av x. Det går inte att returnera något fel.

Anmärkningar

Funktionerna modf delar upp flyttalsvärdet x i bråk- och heltalsdelar, som var och en har samma tecken som x. Den signerade deldelen av x returneras. Heltalsdelen lagras som ett flyttalsvärde vid intptr.

modf har en implementering som använder SIMD-tillägg för direktuppspelning 2 (SSE2). Mer _set_SSE2_enable information och begränsningar för användning av SSE2-implementeringen finns i.

C++ tillåter överlagring, så du kan anropa överlagringar av modf den tagning och retur float eller long double parametrar. I ett C-program modf tar alltid två dubbla värden och returnerar ett dubbelt värde.

Som standard är den här funktionens globala tillstånd begränsat till programmet. Information om hur du ändrar det här beteendet finns i Globalt tillstånd i CRT.

Kravspecifikation

Rutin Obligatoriskt huvud
modf, modffmodfl C: <math.h>

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

Mer kompatibilitetsinformation finns i Kompatibilitet.

Example

// 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

Se även

Stöd för matematik och flyttalsstöd
frexp
ldexp