代码基本上给了我infinty和sting undefined。我只需要undefined。我明白为什么它给无限但不明白如何摆脱它。我不能使用异常,因为错误应该只打印undefined而不是其他内容。
double divide;
double a;
double b = 0;
if(args.length > 3){
System.out.println("Argument count mismatch");
}
else if(args.length == 1){
System.out.println("Argument count mismatch");
}
else{
a = Integer.parseInt(args[1]);
b = Integer.parseInt(args[2]);
divide = a / b;
System.out.println(divide);
if (b == 0) {
System.out.println("Undefined");
}
}
答案 0 :(得分:2)
您可以使用Double.isInfinite(double)
测试结果(您可能还想使用Double.isNaN(double)
之类的内容,
double a = 10;
double b = 0;
double divide = a / b;
if (Double.isInfinite(divide) || Double.isNaN(divide)) {
System.out.println("Undefined");
} else {
System.out.println(divide);
}
输出
Undefined
答案 1 :(得分:1)
除了Elliott Frisch之外,另一种方法是使用Double
类中的常量检查正无穷大。
if (divide == Double.POSITIVE_INFINITY || divide == Double.NEGATIVE_INFINITY)
{
System.out.println("Undefined");
}