我正在为作业制作一个简单的计算器,当除以0时,Java会返回“无穷大(Infinity)”。
我需要在得到无穷大时显示一些错误信息。问题是我不知道如何编写条件语句。
double result;
result = 4/0;
//if result == infinity then some message - need help with this
我正在为作业制作一个简单的计算器,当除以0时,Java会返回“无穷大(Infinity)”。
我需要在得到无穷大时显示一些错误信息。问题是我不知道如何编写条件语句。
double result;
result = 4/0;
//if result == infinity then some message - need help with this
ArithmeticException: / by zero
Double
类中有两个无穷大的字段:POSITIVE_INFINITY
和NEGATIVE_INFINITY
,您可以进行检查。ArithmeticException
异常,因此您的代码行必须是4.0/0
、4/0.0
或4.0/0.0
,因为4和0是整数,因此会导致整数运算。double result;
result = 4.0 / 0.0;
因为这个问题在我的Java课程中出现了,所以我希望你能重新审视一下这个古老的问题。我相信你已经尝试了像他们建议的try/catch方法,但是你会发现,就像我一样,它不能用于Double
。由于返回“Infinity”而不是异常,所以对于Double
或Float
,带有ArithmeticException的try/catch无法使用。(注意,删除了我的旧“答案”,因为它不是一个答案)。
通过拼凑一些不同的问题/答案,我得出了以下结果。
public class trial
{
public static void main(String[] args)
{
double a;
try {
a = 4/0;
System.out.println(" The answer is " +a);
} catch(ArithmeticException e) {
System.out.println(" You can't divide by zero. Please try again.");
}
}
}
public class trial
{
public static void main(String[] args)
{
double a;
try {
a = 4/0;
// if statement to throw an AtithmeticException if ans equals infinity
if(a == Double.POSITIVE_INFINITY){
throw new ArithmeticException();
}
else{
System.out.println(" The answer is " +a);
}
} catch(ArithmeticException e) {
System.out.println(" You can't divide by zero. Please try again.");
}
}
}
Jacek Kwiecień试试这段代码
double result;
try{
result=4.0/0.0;
}catch(ArithmeticException e){
System.out.println("Math error "+ e.getMessage())
}
`
try{
result = 4/0;
}
catch(ArithmeticException e){
System.out.println("You divided by zero");
}
你可以在这里阅读有关异常处理的内容。
ArithmeticException
пјҢжЈҖжҹҘйҷӨж•°жҳҜеҗҰдёәйӣ¶гҖӮжҳҫзӨәй”ҷиҜҜж¶ҲжҒҜгҖӮ - Nishant4.0/0.0
=>无穷大
,4/0
是整数运算,会产生一个异常。 - Peter Lawrey