Java Java API
Class:
java.lang.Math
Methods:
public static int multiplyExact(int x,
int y)
Returns the product of the arguments, throwing an exception if the result overflows an int .
public static long multiplyExact(long x,
int y)
Returns the product of the arguments, throwing an exception if the result overflows a long .
public static long multiplyExact(long x,
long y)
Returns the product of the arguments, throwing an exception if the result overflows a long .
Examples
 package com.logicbig.example.math;
public class MultiplyExactExample {
public static void main(String... args) { findMultiplyExact(41, 25); findMultiplyExact(357, 5); findMultiplyExact(-11, 13); findMultiplyExact(0, 5); findMultiplyExact(-3, -13); }
private static void findMultiplyExact(int x, int y) { int product = Math.multiplyExact(x, y); System.out.printf("Product of %s amd %s = %d%n", x, y, product); } }
OutputProduct of 41 amd 25 = 1025 Product of 357 amd 5 = 1785 Product of -11 amd 13 = -143 Product of 0 amd 5 = 0 Product of -3 amd -13 = 39
 package com.logicbig.example.math;
public class MultiplyExactExample2 {
public static void main(String... args) { findMultiplyExact(31, 155000l); findMultiplyExact(7, 1021451l); findMultiplyExact(1, Long.MAX_VALUE); findMultiplyExact(2, Long.MAX_VALUE); findMultiplyExact(Integer.MAX_VALUE, 2); }
private static void findMultiplyExact(int x, long y) { long product = 1; System.out.println("-----------"); System.out.println("Result without Math.multiplyExact: "); System.out.printf("%s * %s = %s%n", x, y, x * y); System.out.println("Result with Math.multiplyExact: "); try { product = Math.multiplyExact(x, y); } catch (ArithmeticException e) { System.out.println("error: " + e); } System.out.println(product); } }
Output----------- Result without Math.multiplyExact: 31 * 155000 = 4805000 Result with Math.multiplyExact: 4805000 ----------- Result without Math.multiplyExact: 7 * 1021451 = 7150157 Result with Math.multiplyExact: 7150157 ----------- Result without Math.multiplyExact: 1 * 9223372036854775807 = 9223372036854775807 Result with Math.multiplyExact: 9223372036854775807 ----------- Result without Math.multiplyExact: 2 * 9223372036854775807 = -2 Result with Math.multiplyExact: error: java.lang.ArithmeticException: long overflow 1 ----------- Result without Math.multiplyExact: 2147483647 * 2 = 4294967294 Result with Math.multiplyExact: 4294967294
 package com.logicbig.example.math;
public class MultiplyExactExample3 {
public static void main(String... args) { findMultiplyExact(30001l, 15000l); findMultiplyExact(1l, Long.MIN_VALUE); findMultiplyExact(-442, 133); findMultiplyExact(100, 25); findMultiplyExact(-300, -53); }
private static void findMultiplyExact(long x, long y) { long product = Math.multiplyExact(x, y); System.out.printf("Product of %s amd %s = %d%n", x, y, product); } }
OutputProduct of 30001 amd 15000 = 450015000 Product of 1 amd -9223372036854775808 = -9223372036854775808 Product of -442 amd 133 = -58786 Product of 100 amd 25 = 2500 Product of -300 amd -53 = 15900
|
|