除以0时Java中的无穷大或异常?
考虑以下代码片段:
public class Geeksforgeeks
{
public static void main(String[] args)
{
double p = 1;
System.out.println(p/0);
}
}
输出:
Infinity
public class Geeksforgeeks
{
public static void main(String[] args)
{
int p = 1;
System.out.println(p/0);
}
}
输出:
Exception in thread "main" java.lang.ArithmeticException: / by zero
at Geeksforgeeks.main(Geeksforgeeks.java:8)
解释:在第一段代码中,双精度值除以 0,而在另一种情况下,整数值除以 0。但是它们的解决方案不同。
- 在双/浮点除法的情况下,输出为Infinity ,这是它实现浮点算术算法的基本原因,该算法根据 IEEE 为“除以零的情况”指定了一个特殊值,如“非数字”或“无穷大” 754 标准。
- 在整数除法的情况下,它会抛出 ArithmeticException。