Java 中的 Math 中的 multiplyExact()
在 Java 中,multiplyExact() 是 Math 类的内置静态方法,它接受两个参数并返回它们的乘积作为结果。此方法可以接受整数或长整型的值。需要注意的一点是,如果生成的结果超出整数的大小,它可能会引发异常。
了解了 Java 中 multiplyExact() 的功能后,人们可能会想到一个问题,那就是我们也可以使用"*"运算符将两个操作数相乘,那么为什么我们需要 multiplyExact() 方法。我们将回答这个问题,并通过示例探索 multiplyExact() 方法。
Java 中的 multiplyExact() 方法
对于任何类型的两个或多个值的简单乘法运算,我们可以依赖 * 运算符,但我们不能使用 multiplyExact() 方法将除整数和长整型之外的任何类型的值相乘。此外,它只接受两个参数。
在开始示例程序之前,让我们讨论一下 multiplyExact() 方法的语法 -
语法
public static Type multiplyExact(Type val1, Type val2);
这里,"Type"指定整数或长数据类型。
要在我们的 Java 程序中使用 multiplyExact() 方法,我们需要使用以下命令导入 Math 类 -
import java.lang.Math;
请注意,multiplyExact() 是 Math 类的静态方法,要调用此方法,我们不需要对象,而是使用类名后跟点 (.) 运算符。
示例
在下面的示例中,我们将使用 multiplyExact() 方法计算整数值的乘积。
import java.lang.Math;
public class Example1 {
public static void main(String args[]) {
int a = 12, b = 34;
System.out.printf("a 和 b 的乘积是: ");
// 执行第一次乘法
System.out.println(Math.multiplyExact(a, b));
int c = 78, d = 93;
System.out.printf("c 和 d 的乘积是: ");
// 执行第二次乘法
System.out.println(Math.multiplyExact(c, d));
}
}
输出
a 和 b 的乘积为:408 c 和 d 的乘积为:7254
示例
在此示例中,我们将使用 multiplyExact() 方法计算 long 类型值的乘积。
import java.lang.Math;
public class Example2 {
public static void main(String args[]) {
long val1 = 1258, val2 = 304;
System.out.printf("val1 和 val2 的乘积是:");
System.out.println(Math.multiplyExact(val1, val2));
long val3 = 478, val4 = 113;
System.out.printf("val3 和 val4 的乘积是:");
System.out.println(Math.multiplyExact(val3, val4));
}
}
输出
val1 和 val2 的乘积为:382432 val3 和 val4 的乘积为:54014
示例
以下示例显示了如果结果溢出整数变量的大小,将输出什么。
import java.lang.Math;
public class Example3 {
public static void main(String args[]) {
int val1 = 1258526920;
int val2 = 1304;
System.out.printf("val1 和 val2 的乘积是:");
// 此行将引发异常
System.out.println(Math.multiplyExact(val1, val2));
}
}
输出
val1 和 val2 的乘积为:线程"main"中的异常 java.lang.ArithmeticException:整数溢出 位于 java.base/java.lang.Math.multiplyExact(Math.java:992) 位于 Example3.main(Example3.java:7)
示例
我们可以使用 try 和 catch 块以更专业的方式处理异常。
import java.lang.Math;
public class Example4 {
public static void main(String args[]) {
try {
int val1 = 1258526920;
int val2 = 1304;
System.out.println(Math.multiplyExact(val1, val2));
}
catch(ArithmeticException exp) { // to handle the exception
System.out.println("计算结果太大");
}
}
}
输出
计算结果过大
结论
本文从介绍 multiplyExact() 方法开始,该方法是 Math 类的内置静态方法,下一节中,我们借助示例程序讨论了该方法的实际实现。此外,我们还发现了如何处理结果溢出导致的异常。
相关文章
有用资源
java 参考教程 - 该教程包含有关 java 的更多信息:https://www.cainiaomax.com/java/

