modf, modff, modfl

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

Синтаксис

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

Параметры

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

intptr
Указатель на сохраненное значение целой части числа.

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

Эта функция возвращает подписанную дробную часть x. Не возвращается ошибка.

Замечания

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

Функция modf содержит реализацию, которая использует Streaming SIMD Extensions 2 (SSE2). См _set_SSE2_enable . сведения и ограничения на использование реализации SSE2.

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

По умолчанию глобальное состояние этой функции ограничивается приложением. Чтобы изменить это поведение, см . статью "Глобальное состояние" в CRT.

Требования

Маршрут Обязательный заголовок
modf, modff, modfl C: <math.h>

C++: <cmath> или <math.h>

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

Пример

// 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

См. также

Поддержка математических и плавающих точек
frexp
ldexp