共用方式為


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
xy= 確切 ± 無限大, z = 無限正負號相反 NaN
xy= 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