Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Divide um valor de ponto flutuante em partes fracionárias e inteiras.
Sintaxe
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
Parâmetros
x
Valor de vírgula flutuante.
intptr
Ponteiro para a parte inteira armazenada.
Valor de retorno
Esta função retorna a parte fracionada assinada de x. Não há retorno de erro.
Observações
As modf funções dividem o valor x de vírgula flutuante em partes fracionárias e inteiras, cada uma das quais tem o mesmo sinal xque . A parte fracionada assinada x é devolvida. A parte inteira é armazenada como um valor de ponto flutuante em intptr.
modf tem uma implementação que usa Streaming SIMD Extensions 2 (SSE2). Consulte _set_SSE2_enable para obter informações e restrições sobre o uso da implementação SSE2.
C++ permite sobrecarga, para que você possa chamar sobrecargas desse modf take e return float ou long double parâmetros. Em um programa C, modf sempre leva dois valores duplos e retorna um valor duplo.
Por padrão, o estado global dessa função tem como escopo o aplicativo. Para alterar esse comportamento, consulte Estado global na CRT.
Requerimentos
| Rotina | Cabeçalho obrigatório |
|---|---|
modf, modff, modfl |
C: <math.h>C++: <cmath> ou <math.h> |
Para obter mais informações sobre compatibilidade, consulte Compatibilidade.
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