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ü xdö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 xsahiptir. öğesinin imzalı kesirli bölümü x döndürülür. Tamsayı bölümü konumunda kayan nokta değeri intptrolarak 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

Ayrıca bkz.

Matematik ve kayan nokta desteği
frexp
ldexp