Udostępnij za pośrednictwem


nextafter, nextafterf, , nextafterl, _nextafterf_nextafter, , nexttoward, , nexttowardfnexttowardl

Zwraca następną reprezentującą wartość zmiennoprzecinkową.

Składnia

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

double _nextafter( double x, double y );
float _nextafterf( float x, float y ); /* x64 only */

#define nextafter(X, Y) // Requires C11 or higher

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

#define nexttoward(X, Y) // Requires C11 or higher

float nextafter( float x, float y ); /* C++ only, requires <cmath> */
long double nextafter( long double x, long double y ); /* C++ only, requires <cmath> */

float nexttoward( float x, long double y ); /* C++ only, requires <cmath> */
long double nexttoward( long double x, long double y ); /* C++ only, requires <cmath> */

Parametry

x
Wartość zmiennoprzecinkowa do rozpoczęcia od.

y
Wartość zmiennoprzecinkowa do przejścia w kierunku.

Wartość zwracana

Zwraca następną reprezentującą wartość zmiennoprzecinkową typu zwracanego po x kierunku y. Jeśli x i y są równe, funkcja zwraca ywartość , przekonwertowaną na typ zwracany bez wyzwalania wyjątku. Jeśli x wartość nie jest równa ywartości , a wynik jest denormalny lub zero, FE_UNDERFLOW są ustawione stany wyjątków zmiennoprzecinkowych i FE_INEXACT zwracany jest prawidłowy wynik. Jeśli albo x y jest nazwą NAN, zwracana wartość jest jedną z wejściowych sieci NAN. Jeśli x jest skończona, a wynik jest nieskończony lub nie można go przedstawić w typie, zwracana jest poprawnie podpisana nieskończoność lub wartość NAN, FE_OVERFLOW FE_INEXACT ustawiane są stany wyjątków zmiennoprzecinkowych i errno ustawiono wartość ERANGE.

Uwagi

Rodziny nextafter funkcji i nexttoward są równoważne, z wyjątkiem typu parametru y. Jeśli x i y są równe, zwracana wartość jest y konwertowana na zwracany typ.

Ponieważ język C++ umożliwia przeciążenie, jeśli uwzględnisz<cmath>, możesz wywołać przeciążenia elementów i zwracanych nextafter float i nexttoward long double typów. W programie języka C, chyba że używasz makra <tgmath.h> do wywoływania tej funkcji i nextafter nexttoward zawsze zwracasz wartość double.

Jeśli używasz makra nextafter lub nexttoward z <tgmath.h>, typ argumentu określa, która wersja funkcji jest zaznaczona. Aby uzyskać szczegółowe informacje, zobacz Typy ogólne matematyczne .

Funkcje _nextafter i _nextafterf są specyficzne dla firmy Microsoft. Funkcja _nextafterf jest dostępna tylko podczas kompilowania dla x64.

Domyślnie stan globalny tej funkcji jest zakresem aplikacji. Aby zmienić to zachowanie, zobacz Stan globalny w CRT.

Wymagania

Procedura Wymagany nagłówek (C) Wymagany nagłówek (C++)
nextafter, nextafterf, , nextafterl, _nextafterf, nexttoward, , nexttowardfnexttowardl <math.h> <math.h> lub <cmath>
_nextafter <float.h> <float.h> lub <cfloat>
nextafter makro, nexttoward makro <tgmath.h>

Aby uzyskać więcej informacji o zgodności, zobacz Zgodność.

Zobacz też

Obsługa obliczeń matematycznych i zmiennoprzecinkowych
isnan, , _isnan_isnanf