Java Math subtractExact(long x, long y) 方法

Java Math subtractExact(long x, long y) 方法

我们将讨论Java语言中的Java Math subtractExact(long x, long y) 方法,了解其功能和工作原理。

subtractExact()Java Math库中的内置函数。该函数返回在函数中作为参数传递的两个参数之间的差。当返回值超出特定数据类型的值范围时,该函数返回异常。

subtractExact() 函数的语法

long a;
long b;

long subtractExact(long a, long b);

在函数中传递的参数是长整型的a和b。函数返回的值是长整型的差值,即a – b。当函数返回的值溢出传递参数的数据类型的值时,函数将返回一个显示特定数据类型中溢出的异常。

在本文中,我们将看到Java代码中subtractExact()函数的实现以及它如何返回值。我们将编写一个Java代码,其中两个数字将作为输入,输入将是长整型,并且我们需要使用Java Math库中提供的subtractExact()函数找到这两个数字的差。

让我们通过以下示例了解问题。

输入:

a=30 , b=10

输出

20

解释 ─ 这里给定的输入数字是30和10。我们需要用subtractExact()函数找到这两个数字的差值,即a−b。因此,输出将是20,即a−b的值。

输入

a= -2  , b=-3

输出

1

解释 − 输入的数字为-2和-3。使用subtractExact(a, b)将这两个数字作为参数传递给函数,函数将返回等于a−b即-2-(-3)=−2+3 = 1的值。因此,1是所需的输出。

让我们了解在Java代码中使用subtractExact()函数来查看函数的实现。

让我们了解在Java代码中使用subtractExact()函数来查看函数的实现

我们将按照以下步骤在我们的Java代码中实现subtractExact()函数:

  • 我们将使用java.lang.Math导入Java Math库。

  • 导入Math库后,我们可以使用库中的所有函数,包括subtractExact()函数。

  • 初始化两个long数据类型的变量。

  • 现在我们将创建另一个变量来存储函数返回的值。

  • 使用subtractExact()函数,我们将值存储在变量中。该函数从第一个参数中减去传递给函数的第二个参数。

  • 打印函数的输出,它将等于第一个参数和第二个参数之差。

示例

//Java Code to see the implementation of the subtractExact() function

import java.lang.Math; //to import the java Math library to use the subtractExact() function

public class Main
{
    public static void main(String[] args) {
        //initialise two variable of long data type
        long a;
        long b;

        //store the values in the variable
        a=56240389;
        b=846270;

        long ans; //to store the  output of the function
        //subtracts the second parameter from the first one i.e. a-b
        ans=Math.subtractExact(a,b); // passing a and b as parameter in the function

        //print the output
        System.out.println("The value returned by the function : "+ans);

        ans=Math.subtractExact(b,a); //will equal to b-a

        System.out.println("The value returned by the function : "+ans);

    }
}

输出

The value returned by the function : 55394119
The value returned by the function : -55394119

时间复杂度 - O(1),因为subtractExact()函数会在常数时间内返回输出结果。

空间复杂度 - O(1),因为我们在函数实现中没有使用任何额外的空间。

用于查看subtractExact()函数溢出的Java代码

实现该函数的步骤如下:

  • 我们将使用java.lang.Math导入Java Math库。

  • 现在创建两个long数据类型的变量。

  • 我们将在这两个变量中分别存储long数据类型的最小值和任意值。

  • 现在初始化另一个long数据类型的变量以存储函数返回的值。我们将最小值的long数据类型作为第一个参数传递给函数,因为函数将第二个参数减去第一个参数。

  • 从long数据类型的最小值中减去这个数将导致long数据类型溢出。因此,该函数将会显示long溢出的异常。

示例

//Java Code to see the implementation of the subtractExact() function

import java.lang.Math; //to import the java Math library to use the subtractExact() function

public class Main
{
    public static void main(String[] args) {
        //initialise two variable of long data type
        long a;
        long b;

        //store the values in the variable
        a=Long.MIN_VALUE;
        b=7;

        long ans; //to store the  output of the function
        //subtracts the second parameter from the first one i.e. a-b
        //which will cause overflow in long as a is the minimum value of long data type
        ans=Math.subtractExact(a,b); // passing a and b as parameter in the function

        //print the output
        System.out.println("The value returned by the function : "+ans);


    }
}

输出

代码将不会执行,因为函数中的溢出导致出现长整型溢出异常,如下所示:

Exception in thread "main" java.lang.ArithmeticException: long overflow
        at java.base/java.lang.Math.subtractExact(Math.java:887)
        at Main.main(Main.java:19)

结论

本文讨论了Java Math中的subtractExact(long x, long y)方法及其在Java中的实现和功能。我们通过编写Java代码来理解subtractExact()函数的实现,并尝试理解函数中的值溢出。

我希望您在阅读本文后能够理解Java Math subtractExact()方法及其在Java中的实现。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程