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

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

" 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

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

Синтаксис:

#include < math.h >

double nexttoward (double x, double y);
float nexttowardf (float x, float y);
long double nexttowardl (long double x, long double y);

Аргументы:

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

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

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

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

Из двух ближайших к аргументу x чисел будет возвращено наиболее удаленное, если x равен y.

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

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

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

Описание:

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

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

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

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

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

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

Пример:

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


#include < stdio.h >  //Для printf
#include < math.h >   //Для nexttoward, nexttowardf, nexttowardl

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

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

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

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

   return 0;
}

Результат:

Аргументы: 10 и 12
nexttowardf: 10.00000095367431640625
nexttoward : 10.00000000000000177636
nexttowardl: 10.00000000000000000087



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

nextafter, nextafterf, nextafterl
nexttoward, nexttowardf, nexttowardl


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

Рейтинг@Mail.ru