浮點數基本類型
用來實作某些標準 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
浮點函式引數。
備註
這些浮點基本類型會採用兩個引數 和 x
y
,並傳回一個值,其顯示其排序關聯性,以位或這些常數來表示于 math.h 中:
值 | Description |
---|---|
_FP_LT |
x 可視為小於 y |
_FP_EQ |
x 可視為等於 y |
_FP_GT |
x 可視為大於 y |
這些基本類型會在 CRT 中實 isgreater
作 、 isgreaterequal
、 isless
、 islessequal
、 islessgreater
和 isunordered
宏和函式。
_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
。 為了可攜性,偏好 、 ldexpf
ldexpl
函 ldexp
式。
_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
,否則會傳回輸出值。 為了可攜性,偏好 、 frexpf
frexpl
函 frexp
式。
_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
。 為了可攜性,偏好 、 ldexpf
ldexpl
函 ldexp
式。
_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
、、 logf
logl
、 log10
、 log10f
、 和 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 的象限位移,用來產生 sin
、 cos
、 -sin
和 -cos
結果。
備註
這些浮點基本類型會傳 quadrant
回模數 4 的 x
位移正弦值。 實際上,當模數 4 分別為 0、1、2 或 3 時 quadrant
,它們會傳回 的正弦、余弦、-正弦值和余弦 x
值。 這些函式不會在內部使用。 為了可攜性,偏好 sin
、、 sinl
sinf
、 cos
、、 cosl
cosf
函式。
需求
標頭: < 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
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應