fma、 fmaf、 fmal
如需 Visual Studio 2017 的最新文件請參閱 Visual Studio 2017 文件。
將兩個值一起相乘,新增第三個值,並接著會將結果,而不會遺失任何因為中間的四捨五入的精確度。
語法
double fma(
double x,
double y,
double z
);
float fma(
float x,
float y,
float z
); //C++ only
long double fma(
long double x,
long double y,
long double z
); //C++ only
float fmaf(
float x,
float y,
float z
);
long double fmal(
long double x,
long double y,
long double z
);
參數
[in] x
要相乘的第一個值。
[in] y
要相乘的第二個值。
[in] z
要加入的值。
傳回值
Returns (x
× y
) + z
. 傳回值就是使用目前的捨入格式會四捨五入。
否則,可能會傳回下列值之一︰
問題 | 返回 |
---|---|
x = 無限大, y = 0 或x = 0, y = 無限 |
NaN |
x 或y = 確切 ± 無限大, z = 無限正負號相反 |
NaN |
x 或y = NaN |
NaN |
不 (x = 0, y = 無限期) 和z = NaN不 ( x = 無限期, y = 0) 和z = NaN |
NaN |
溢位範圍錯誤 | ±HUGE_VAL、 ±HUGE_VALF 或 ±HUGE_VALL |
反向溢位範圍錯誤 | 正確的值之後捨入。 |
錯誤報告中所指定_matherr。
備註
因為 c + + 允許多載,所以您可以呼叫的多載fma
採用並傳回浮點和長雙精度浮點型別。 在 C 程式中,fma
一律採用並傳回雙精度浮點數。
此函式計算的值,就好像它拍攝無限的有效位數,並接著會將最後的結果。
需求
函式 | C 標頭 | C++ 標頭 |
---|---|---|
fma , fmaf , fmal |
<math.h> | <>> |
如需其他相容性資訊,請參閱 相容性。
另請參閱
依字母順序排列的函式參考
remainder、 remainderf、 remainderl
remquo、 remquof、 remquol