共用方式為


nextafternextafterfnextafterl_nextafter_nextafterfnexttoward、、、 nexttowardfnexttowardl

傳回下一個所能顯示的浮點值。

語法

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> */

參數

x
起始的浮點值。

y
要前往的浮點值。

傳回值

傳回 y 方向中 x 之後下一個所能顯示且屬於傳回型別的浮點值。 如果 xy 相等,函式會 y傳回 ,轉換為傳回型別,且不會觸發例外狀況。 如果 x 不等於 y,且結果為反正規或零, FE_UNDERFLOW 則會設定 和 FE_INEXACT 浮點例外狀況狀態,並傳回正確的結果。 如果 xy 為 NAN,則傳回值是其中一個輸入 NAN。 如果 x 為有限,且結果在類型中是無限或不可表示的,則會傳回正確帶正負號的無限大或 NAN, FE_OVERFLOW 而且會設定 和 FE_INEXACT 浮點例外狀況狀態,並且 errno 設定為 ERANGE

備註

nextafternexttoward 函式系列相同,只不過 y 的參數類型不同。 如果 xy 相等,傳回的值會是轉換成傳回型別的 y

因為C++允許多載,如果您包含 <cmath> ,您可以呼叫 的多載 nextafter 和 傳 nexttowardfloatlong double 型別。 在 C 程式中,除非您使用 <tgmath.h> 巨集 來呼叫此函式, nextafter 而且 nexttoward 一律會傳回 double

如果您使用 nextafter 的或 nexttoward 巨集 <tgmath.h>,自變數的類型會決定選取函式的版本。 如需詳細資料,請參閱型別泛型數學

_nextafterf_nextafter式Microsoft特定。 _nextafterf 函式只適用於 x64 編譯時。

根據預設,此函式的全域狀態會限定於應用程式。 若要變更此行為,請參閱 CRT 中的全域狀態

需求

常式 必要的標頭 (C) 必要的標頭 (C++)
nextafternextafterf、、_nextafterfnextafterlnexttoward、、、 nexttowardfnexttowardl <math.h> <math.h><cmath>
_nextafter <float.h> <float.h><cfloat>
nextafter 巨集, nexttoward 巨集 <tgmath.h>

如需相容性詳細資訊,請參閱相容性

另請參閱

數學與浮點支援
isnan、 、 _isnan_isnanf