当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Java Math fma()用法及代码示例


在Math类中,根据传递给它的参数,有两种类型的fma()方法。

方法是:

fma(double a,double b,double c):

此Math类方法用于返回前两个双精度数的精确乘积加上第三个双精度数,然后将结果四舍五入到最接近的双精度数。使用四舍五入到最接近的四舍五入模式进行舍入。令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 = Math.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 = Math.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):

Math类的此方法与fma(double a,double b,double c)相同,但不同之处在于它以float为属性并返回float为返回值,因此可以说此方法返回前两个的乘积。 arguments(float values)加上第三个参数(float value),然后将结果四舍五入到最接近的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 = Math.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 = Math.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/Math.html#fma(double,double,double),https://docs.oracle.com/javase/10 /docs/api/java/lang/Math.html#fma(float、float、float)



相关用法


注:本文由纯净天空筛选整理自AmanSingh2210大神的英文原创作品 Math fma() method in Java with Examples。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。