在StrictMath類中,根據傳遞給它的參數,有兩種類型的fma()方法。
方法是:
fma(double a,double b,double c):
StrictMath類的此方法用於返回前兩個雙精度數的精確乘積加上第三個雙精度數,然後將結果四舍五入到最接近的雙精度數。使用四舍五入到最接近的四舍五入模式進行舍入。令a,b,c為三個雙精度數,然後將a * b + c評估為正則浮點表達式,其中涉及兩個舍入誤差,第一個為a * b的乘法運算,第二個為乘積加法運算結果與c。
此方法的一些特殊情況是:
- 如果這三個參數中的任何一個為NaN,則結果為NaN。
- 如果前兩個參數之一是無限大而另一個是零,那麽結果是NaN。
- 如果兩個自變量的精確乘積為無窮大,而第三個自變量為相反符號的無窮大,則結果為NaN。
例:
Input: a=2.0, b=3.0, c=3.0 Output: 9.0 As 2.0 * 3.0 + 3.0 = 9.0 Input: a=9.20, b=6.30, c=4.10 Output: 62.059999999999995 As 9.20 * 6.30 + 4.10 = 62.059999999999995
用法:
public static double fma(double a, double b, double c)
參數:此方法接受參數a,b,c的三個雙精度數,其中a和b是要相乘的參數,c是要與乘積相加的參數。
返回值:在以無限範圍和精度計算a * b + c之後,此方法返回舍入的double值。
注意:此方法已在JDK 9中添加。因此,它將無法在Online IDE中運行。
以下示例程序旨在說明fma()方法:
示例1:
// Java program to demonstrate the fma() Method.
public class GFG {
// Main method
public static void main(String[] args)
{
// three double values
double a = 9.20, b = 6.30, c = 4.10;
// apply fma method
double d = StrictMath.fma(a, b, c);
// print result
System.out.println(a + " * " + b
+ " + " + c
+ " = " + d);
}
}
輸出:
9.2 * 6.3 + 4.1 = 62.059999999999995
示例2:
// Java program to demonstrate the fma() Method.
public class GFG {
// Main method
public static void main(String[] args)
{
// three double values
double a = 19.20, b = 16.30, c = 44.10;
// apply fma method
double d = StrictMath.fma(a, b, c);
// print result
System.out.println(a + " * " + b
+ " + " + c
+ " = " + d);
}
}
輸出:
19.2 * 16.3 + 44.1 = 357.06
fma(float a,float b,float c):
StrictMath類的此方法與fma(double a,double b,double c)相同,但不同之處在於它以float為屬性,並以float為返回值。因此,可以說此方法返回前兩個參數(浮點值)與第三個參數(浮點值)的確切乘積,然後將結果四舍五入到最接近的浮點數。使用四舍五入到最接近的四舍五入模式進行舍入。令a,b,c為三個浮點數,然後將a * b + c評估為正則浮點表達式,涉及兩個舍入誤差,第一個為a * b的乘法運算,第二個為a * b的加法運算與c的乘積結果
例:
Input: a=29.20f, b=18.40f, c=43.10f; Output: 580.38 As 29.20f * 18.40f + 43.10f = 580.38 Input: a=9.20f, b=6.30f, c=4.10f; Output: 62.059999999999995f As 9.20f * 6.30f + 4.10f = 62.059999999999995f
用法:
public static double fma(float a, float b, float c)
參數:此方法接受三個浮點數a,b,c作為參數,其中a和b是我們要相乘的參數,c是我們要與乘積相加的參數。
返回值:在以無限範圍和精度計算a * b + c之後,此方法返回舍入的浮點值。
注意:此方法已在JDK 9中添加。因此,它將無法在Online IDE中運行。
以下示例程序旨在說明fma()方法:
示例1:
// Java program to demonstrate
// the fma() Method.
public class GFG {
// Main method
public static void main(String[] args)
{
// three double values
float a = 29.20f, b = 18.40f, c = 43.10f;
// apply fma method
float d = StrictMath.fma(a, b, c);
// print result
System.out.println(a + " * " + b
+ " + " + c
+ " = " + d);
}
}
輸出:
29.2 * 18.4 + 43.1 = 580.38
示例2:
// Java program to demonstrate
// the fma() Method.
public class GFG {
// Main method
public static void main(String[] args)
{
// three double values
float a = 49.29f, b = 28.58f, c = 33.63f;
// apply fma method
float d = StrictMath.fma(a, b, c);
// print result
System.out.println(a + " * " + b
+ " + " + c
+ " = " + d);
}
}
輸出:
49.29 * 28.58 + 33.63 = 1442.3383
參考:https://docs.oracle.com/javase/10/docs/api/java/lang/StrictMath.html#fma(double,double,double),https://docs.oracle.com/javase/10 /docs/api/java/lang/StrictMath.html#fma(float、float、float)
相關用法
- Java StrictMath min()用法及代碼示例
- Java StrictMath ulp()用法及代碼示例
- Java StrictMath cos()用法及代碼示例
- Java StrictMath max()用法及代碼示例
- Java StrictMath expm1()用法及代碼示例
- Java StrictMath multiplyFull()用法及代碼示例
- Java StrictMath multiplyHigh()用法及代碼示例
- Java StrictMath asin()用法及代碼示例
- Java StrictMath toIntExact()用法及代碼示例
- Java StrictMath ceil()用法及代碼示例
- Java StrictMath subtractExact()用法及代碼示例
- Java StrictMath sin()用法及代碼示例
- Java StrictMath pow()用法及代碼示例
- Java StrictMath exp()用法及代碼示例
- Java StrictMath log()用法及代碼示例
注:本文由純淨天空篩選整理自AmanSingh2210大神的英文原創作品 StrictMath fma() method in Java with Examples。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。