共用方式為


浮點數基本類型

用來實作某些標準 C 執行時間程式庫 (CRT) 浮點函式的 Microsoft 特定基本函式。 本文記載為完整性,但不建議使用。 其中有些函式會指出為未使用,因為它們已知有精確度、例外狀況處理和 IEEE-754 行為的一致性問題。 它們只存在於程式庫中,以提供回溯相容性。 為了正確行為、可攜性和遵守標準,偏好標準浮點函式而不是這些函式。

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

_dclass, _ldclass, _fdclass

語法

short __cdecl _dclass(double x);
short __cdecl _ldclass(long double x);
short __cdecl _fdclass(float x);

參數

x
浮點函式引數。

備註

這些浮點基本類型會針對浮點類型實作 CRT 宏 fpclassify 的 C 版本。 引數 x 的分類會傳回為下列其中一個常數,定義于 math.h:

Description
FP_NAN 無訊息、訊號或不確定的 NaN
FP_INFINITE 正或負無限大
FP_NORMAL 正或負標準化非零值
FP_SUBNORMAL 正負次正規值(反正規化) 值
FP_ZERO 正或負零值

如需詳細資訊,您可以使用 Microsoft 特定的 _fpclass_fpclassf 函式。 fpclassify使用宏或函式進行可攜性。

_dsign, _ldsign, _fdsign

語法

int __cdecl _dsign(double x);
int __cdecl _ldsign(long double x);
int __cdecl _fdsign(float x);

參數

x
浮點函式引數。

備註

這些浮點基本類型會在 CRT 中實 signbit 作宏或函式。 如果符號位是在引數 x 的符號和 mantissa 中設定,則會傳回非零值。 否則,如果未設定符號位,則會傳回 0。

_dpcomp、_ldpcomp、_fdpcomp

語法

int __cdecl _dpcomp(double x, double y);
int __cdecl _ldpcomp(long double x, long double y);
int __cdecl _fdpcomp(float x, float y);

參數

x, y
浮點函式引數。

備註

這些浮點基本類型會採用兩個引數 和 xy ,並傳回一個值,其顯示其排序關聯性,以位或這些常數來表示于 math.h 中:

Description
_FP_LT x 可視為小於 y
_FP_EQ x 可視為等於 y
_FP_GT x 可視為大於 y

這些基本類型會在 CRT 中實 isgreater 作 、 isgreaterequalislessislessequalislessgreaterisunordered 宏和函式。

_dtest、_ldtest、_fdtest

語法

short __cdecl _dtest(double* px);
short __cdecl _ldtest(long double* px);
short __cdecl _fdtest(float* px);

參數

px
浮點引數的指標。

備註

這些浮點基本類型會針對浮點類型實作 CRT fpclassify 函式的 C++ 版本。 系統會評估引數 x ,並以 math.h 中定義的其中一個常數傳回分類:

Description
FP_NAN 無訊息、訊號或不確定的 NaN
FP_INFINITE 正或負無限大
FP_NORMAL 正或負標準化非零值
FP_SUBNORMAL 正負次正規值(反正規化) 值
FP_ZERO 正或負零值

如需詳細資訊,您可以使用 Microsoft 特定的 _fpclass_fpclassf 函式。 使用 函 fpclassify 式進行可攜性。

_d_int、_ld_int、_fd_int

語法

short __cdecl _d_int(double* px, short exp);
short __cdecl _ld_int(long double* px, short exp);
short __cdecl _fd_int(float* px, short exp);

參數

px
浮點引數的指標。

exp
指數做為整數型別。

備註

這些浮點基本類型會盡可能取得浮點值 px 和指數值的 exp 指標,並盡可能移除指定指數下方浮點值的分數部分。 如果輸入值是 NaN 或無限大,則傳回的值是 中 px 輸入值的結果 fpclassify ,否則會傳回輸出值 px

_dscale、_ldscale、_fdscale

語法

short __cdecl _dscale(double* px, long exp);
short __cdecl _ldscale(long double* px, long exp);
short __cdecl _fdscale(float* px, long exp);

參數

px
浮點引數的指標。

exp
指數做為整數型別。

備註

這些浮點基本類型會盡可能取得浮點值 px 和指數值的 exp 指標,並在 中 px 將值調整為 2 exp 。 如果輸入值是 NaN 或無限大,則傳回的值是 中 px 輸入值的結果 fpclassify ,否則會傳回輸出值 px 。 為了可攜性,偏好 、 ldexpfldexplldexp 式。

_dunscale、_ldunscale、_fdunscale

語法

short __cdecl _dunscale(short* pexp, double* px);
short __cdecl _ldunscale(short* pexp, long double* px);
short __cdecl _fdunscale(short* pexp, float* px);

參數

pexp
以整數型別表示之指數的指標。

px
浮點引數的指標。

備註

如果可能的話,這些浮點基本類型會將 所 px 指向的浮點值分解成正負號和指數。 正負數會縮放,讓絕對值大於或等於 0.5 且小於 1.0。 指數是 值 n ,其中原始浮點值等於縮放正負號 2 n 。 這個整數指數 n 會儲存在 所 pexp 指向的位置。 如果輸入值是 NaN 或無限大,則傳回的值是 中 px 輸入值的結果 fpclassify ,否則會傳回輸出值。 為了可攜性,偏好 、 frexpffrexplfrexp 式。

_dexp、_ldexp、_fdexp

語法

short __cdecl _dexp(double* px, double y, long exp);
short __cdecl _ldexp(long double* px, long double y, long exp);
short __cdecl _fdexp(float* px, float y, long exp);

參數

y
浮點函式引數。

px
浮點引數的指標。

exp
指數做為整數型別。

備註

這些浮點基本類型會以等於 y * 2 exp 在指向 px 的位置建構浮點值。 如果輸入值是 NaN 或無限大,則傳回的值是 中 y 輸入值的結果 fpclassify ,否則會傳回輸出值 px 。 為了可攜性,偏好 、 ldexpfldexplldexp 式。

_dnorm,_fdnorm

語法

short __cdecl _dnorm(unsigned short* ps);
short __cdecl _fdnorm(unsigned short* ps);

參數

ps
以 陣列 unsigned short 表示之浮點值的位表示指標。

備註

這些浮點基本類型會將下溢浮點值的分數部分正規化,並調整 特性 或偏差指數以比對。 值會傳遞為浮點型別的位標記法,其會透過 math.h 中宣告的 _double_val_ldouble_val_float_val 型別標點聯集,轉換成 的陣列 unsigned short 。 如果輸入浮點值是 NaN 或無限大,則傳回值是輸出值的結果 fpclassify ,否則為輸出值。

_dpoly、_ldpoly、_fdpoly

語法

double __cdecl _dpoly(double x, double const* table, int n);
long double __cdecl _ldpoly(long double x, long double const* table, int n);
float __cdecl _fdpoly(float x, _float const* table, int n);

參數

x
浮點函式引數。

table
多項式常數係數資料表的指標。

n
要評估的多項式順序。

備註

這些浮點基本類型會傳回 x 的多項式順序 n 評估,其係數是由 中的 table 對應常數值表示。 例如,如果 table[0] = 3.0、 table[1] = 4.0、 table[2] = 5.0 和 n = 2,則代表多項式 5.0x 2 + 4.0x + 3.0。 如果這個多項式評估 x 為 2.0,則結果為 31.0。 這些函式不會在內部使用。

_dlog、_dlog、_dlog

語法

double __cdecl _dlog(double x, int base_flag);
long double __cdecl _ldlog(long double x, int base_flag);
float __cdecl _fdlog(float x, int base_flag);

參數

x
浮點函式引數。

base_flag
旗標,控制要使用的基底,0 用於基底 e ,基底 10 為非零。

備註

當 為 0 時,這些浮點基本類型會傳回 (ln(x) 或 log e (x) base_flag 的自然記錄 x 當 為非零時 base_flag ,它們會傳回 的 x 記錄基底 10 或 log 10 (x)。 這些函式不會在內部使用。 為了可攜性,偏好函式 log 、、 logflogllog10log10f 、 和 log10l

_dsin、_ldsin、_fdsin

語法

double __cdecl _dsin(double x, unsigned int quadrant);
long double __cdecl _ldsin(long double x, unsigned int quadrant);
float __cdecl _fdsin(float x, unsigned int quadrant);

參數

x
浮點函式引數。

quadrant
0、1、2 或 3 的象限位移,用來產生 sincos-sin-cos 結果。

備註

這些浮點基本類型會傳 quadrant 回模數 4 的 x 位移正弦值。 實際上,當模數 4 分別為 0、1、2 或 3 時 quadrant ,它們會傳回 的正弦、余弦、-正弦值和余弦 x 值。 這些函式不會在內部使用。 為了可攜性,偏好 sin 、、 sinlsinfcos 、、 coslcosf 函式。

需求

標頭: < math.h>

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

另請參閱

數學和浮點支援
fpclassify
_fpclass, _fpclassf
isfinite, _finite, _finitef
isinf
isnan, _isnan, _isnanf
isnormal
cos, cosf, cosl
frexp, frexpf, frexpl
ldexp, ldexpf, ldexpl
log, logf, logl, log10, log10f, log10l
sin, sinf, sinl