modf
, modff
, modfl
Kayan nokta değerini kesirli ve tamsayı bölümlerine böler.
Sözdizimi
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
Parametreler
x
Kayan nokta değeri.
intptr
Depolanan tamsayı kısmının işaretçisi.
Dönüş değeri
Bu işlev, öğesinin imzalı kesirli bölümünü x
döndürür. Hata döndürme yok.
Açıklamalar
İşlevler modf
kayan nokta değerini x
kesirli ve tamsayı parçalarına ayırır ve bunların her biri ile aynı işarete x
sahiptir. öğesinin imzalı kesirli bölümü x
döndürülür. Tamsayı bölümü konumunda kayan nokta değeri intptr
olarak depolanır.
modf
, Streaming SIMD Extensions 2 (SSE2) kullanan bir uygulamaya sahiptir. SSE2 uygulamasını kullanma hakkında bilgi ve kısıtlamalar için bkz _set_SSE2_enable
.
C++ aşırı yüklemeye izin verir, böylece bu alma ve döndürme float
veya long double
parametrelerin modf
aşırı yüklemelerini çağırabilirsiniz. C programında her modf
zaman iki çift değer alır ve bir çift değer döndürür.
Varsayılan olarak, bu işlevin genel durumunun kapsamı uygulama olarak belirlenmiştir. Bu davranışı değiştirmek için bkz. CRT'de Genel durum.
Gereksinimler
Yordam | Gerekli başlık |
---|---|
modf , modff , modfl |
C: <math.h> C++: veya <cmath> <math.h> |
Daha fazla uyumluluk bilgisi için bkz . Uyumluluk.
Örnek
// 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