Главная    Разработка ПО    функции языка Си

Описание функций языка Си

" N "

nanosleep 

nearbyint, nearbyintf, nearbyintl 

nextafter, nextafterf, nextafterl 

nexttoward, nexttowardf, nexttowardl 

All | _ | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z

nextafter, nextafterf, nextafterl – поиск ближайшего допустимого значения.

Синтаксис:

#include < math.h >

double nextafter (double x, double y);
float nextafterf (float x, float y);
long double nextafterl (long double x, long double y);

Аргументы:

x – переменная, относительно которой осуществляется поиск.
y – переменная, определяющая направление поиска.

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

Наименьшее допустимое число большее аргумента x, если x меньше y.

Наибольшее допустимое число меньшее аргумента y, если x больше y.

Ближайшее допустимое число, если x равен y.

nan – если один из аргументов или оба аргумента не числа (NAN).

HUGE_VAL, если аргумент x - бесконечность. HUGE_VAL возвращает функция nextafter. Функции nextafterf и nextafterl возвращают HUGE_VALF и HUGE_VALL соответственно.

-HUGE_VAL, если аргумент x – минус бесконечность. -HUGE_VAL возвращает функция nextafter. Функции nextafterf и nextafterl возвращают -HUGE_VALF и -HUGE_VALL соответственно.

Описание:

Числа с плавающее точкой определенные типами float, double и long double имеют ограниченную точность зависящую от типа числа, а следовательно и минимально допустимый дискрет изменения.

Функции nextafter, nextafterf, nextafterl определяют ближайшие к аргументу x допустимые значения отличные от аргумента x. Направление поиска определяется аргументом y. То есть, если y больше x, то будет искаться допустимое значение минимально большее аргумента x. Если y меньше x, то будет искаться максимальное допустимое значение меньшее аргумента x.

Отличие от функций nexttoward, nexttowardf, nexttowardl заключается в возвращаемом значении при равенстве аргументов x и y. Так у функций nextafter, nextafterf, nextafterl будет возвращено ближайшее к аргументу x допустимое число, а у функций nexttoward, nexttowardf, nexttowardl из двух ближайших к аргументу x чисел будет возвращено наиболее удаленное.

Между собой функции отличаются типом аргументов и возвращаемых значений, а соответственно и шагом минимального дискрета. Так аргументы и возвращаемое значение функции nextafter являются числами с плавающей точкой двойной точности (тип double, точность не менее десяти значащих десятичных цифр, разрядность - 64).

Аргументы и возвращаемое значение функции nextafterf являются числами с плавающей точкой (тип float, точность не менее шести значащих десятичных цифр, разрядность - 32).

Аргументы и возвращаемое значение функции nextafterl являются числами с плавающей точкой повышенной точности (тип long double, точность не менее десяти значащих десятичных цифр, разрядность - 80).

Пример:

В примере ищется значение минимально большее десяти для различных типов переменных с плавающей точкой с помощью функций nextafter, nextafterf, nextafterl и результат выводится на консоль.


#include < stdio.h >  //Для printf
#include < math.h >   //Для nextafter, nextafterf, nextafterl

int main (void)
{    
   printf (“Аргументы: 10 и 12”);

   //Ищем минимально большее 10 значение для типа float
   printf (“nextafterf: %.20f\n", nextafterf (10,12) );

   //Ищем минимально большее 10 значение для типа double
   printf (“nextafter : %.20f\n", nextafter (10,12) );

   //Ищем минимально большее 10 значение для типа long double
   printf (“nextafterl: %.20Lf\n", nextafterl (10,12) );

   return 0;
}

Результат:

Аргументы: 10 и 12
nextafterf: 10.00000095367431640625
nextafter : 10.00000000000000177636
nextafterl: 10.00000000000000000087



Смотри так же:

nextafter, nextafterf, nextafterl
nexttoward, nexttowardf, nexttowardl


Яндекс.Метрика

Рейтинг@Mail.ru