Функция modf() позволяет разделить число типа double на целую и дробную части. Целая часть помещается в iptr, а дробная возвращается. Метод modf имеет реализацию, которая использует Streaming SIMD Extensions 2 (SSE2).
C++ допускает вызов перегрузки modf, которая принимает и возвращает параметры типа float или long double. В приложении на языке программирования C функция modf всегда принимает на вход два двойных значения, а возвращает двойное значение.
Синтаксис
#include<math.h>
float modff(float x, float *iptr);
double modf(double x, double *iptr);
long double modfl(long double x, long double *iptr);
//x – число, которое требуется разделить на две части: целую дробную
//iptr – указатель на переменную, содержащую целую часть числа x
Прототип
Название | Язык |
---|---|
math.h | С |
cmath | С++ |
Возвращаемое значение
Метод modf() возвращает целую и дробную части в виде двух элементов, возвращаемое значение которых имеют один и тот же знак. Целая часть x возвращается в виде вещественного числа.
Обработка ошибок
Функция modf() не возвращает ошибки, соответствующие спецификации math_errhandling, в том случае, если арифметическая операция с плавающей запятой поддерживает IEEE (IEC 60559).
- Если x равно ±0, возвращается ±0, а ±0 сохраняется в *iptr.
- Если x равно ±∞, возвращается ±0, а ±∞ сохраняется в *iptr.
- Если x равно NaN, возвращается NaN, а NaN сохраняется в *iptr.
Возвращаемое значение x является точным, а округление игнорируется.
Переносимость
Функция modf уникальна для DOS.
Пример
#include <math.h>
double func, integer;
double number = StrToFloat(Edit1->Text);
func = modf(number,&integer);
Edit2->Text = integer;
Edit3->Text = func;