Поделиться через


modf, modff

Разделяет значение с плавающей точкой на дробную и целую часть.

double modf( 
   double x, 
   double *intptr  
); 
float modf( 
   float x, 
   float *intptr 
);  // C++ only 
long double modf( 
   long double x, 
   long double * intptr 
);  // C++ only 
float modff( 
   float x, 
   float *intptr  
);

Параметры

  • x
    Значение с плавающей точкой.

  • intptr
    Указатель на хранимую целую часть.

Возвращаемое значение

Эта функция возвращает дробную часть х со знаком. Нет какого-либо возврата ошибки.

Заметки

Функция modf разделяет значение с плавающей точкой x на дробную и целую часть, каждая из которых имеет тот же знак, что и x. Возвращается дробная часть x со знаком. Целая часть хранится в виде значения с плавающей точкой в intptr.

modf имеет реализацию, которая использует набор инструкций SSE2. Сведения и ограничения по использованию реализации SSE2 см. в разделе _set_SSE2_enable.

C++ позволяет перегрузку, поэтому можно вызвать перегрузки modf. В программе на языке C modf всегда принимает два значения double и возвращает значение типа double.

Требования

Подпрограмма

Обязательный заголовок

modf, modff

<math.h>

Дополнительные сведения о совместимости см. в разделе Совместимость во введении.

Библиотеки

Все версии библиотек времени выполнения C.

Пример

// 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 );
}

Output

For -14.876543, the fraction is -0.876543 and the integer is -14

Эквивалент в .NET Framework

См. также

Ссылки

Поддержка чисел с плавающей запятой

Long Double

frexp

ldexp