fegetround、fesetround
發行︰ 2016年2月
如需 Visual Studio 2017 的最新文件請參閱 Visual Studio 2017 文件。
取得或設定目前的浮點捨入模式。
語法
int fegetround(void);
int fesetround(
int round_mode
);
參數
round_mode
要以其中一個浮點捨入巨集形式設定的捨入模式。 如果值不等於其中一個浮點捨入巨集,就不會變更捨入模式。
傳回值
成功時, fegetround
會以其中一個浮點捨入巨集值的形式傳回捨入模式。 如果無法判斷目前的捨入模式,它就會傳回負值。
如果成功, fesetround
會傳回 0。 否則,會傳回非零值。
備註
浮點運算可以使用數種捨入模式的其中之一。 這些項目會控制在儲存結果時浮點運算結果的捨入方向。 以下是 <fenv.h> 中所定義之浮點捨入巨集的名稱和行為:
巨集 | 描述 |
---|---|
FE_DOWNWARD | 捨入為無限大的負數。 |
FE_TONEAREST | 捨入為最接近的數字。 |
FE_TOWARDZERO | 以趨近於零的方式捨入。 |
FE_UPWARD | 捨入為無限大的正數。 |
FE_TONEAREST 的預設行為會使用雙數 (0) 最低有效位元,將結果捨入為介於可表示的值和最接近的值之間。
目前的捨入模式會影響下列作業:
字串轉換。
常數運算式之外的浮點算術運算子結果。
程式庫捨入函式,例如
rint
和nearbyint
。從標準程式庫數學函式傳回值。
目前的捨入模式不會影響下列作業:
trunc
、ceil
、floor
和lround
程式庫函式。浮點至整數隱含轉型和轉換,其一律會以趨近於零的方式捨入。
常數運算式中浮點算術運算子的結果,其一律會捨入為最接近的值。
若要使用這些函式,您必須在呼叫之前使用 #pragma fenv_access(on)
指示詞,以關閉可能會妨礙存取的浮點最佳化作業。 如需詳細資訊,請參閱 fenv_access。
需求
函式 | C 標頭 | C++ 標頭 |
---|---|---|
fegetround , fesetround |
<fenv.h> | <>> |
如需其他相容性資訊,請參閱 相容性。
另請參閱
依字母順序排列的函式參考
nearbyint、 nearbyintf、 nearbyintl
rint、 rintf、 rintl
lrint、 lrintf、 lrintl、 llrint、 llrintf、 llrintl