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