Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
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