不能除以零异常



我知道我的错误是一个常见的错误,但是我确实有一个if条件来捕获这个错误。我正在与android工作室合作。我使用的语言是kotlin。

我想计算这个公式:A = ((2varX)+varF)/(varX-(2varF))

有两个主要问题,一个是X和F都是0,我有一个if语句。第二个问题是,如果F是X的二分之一,分母上的结果是0

因为我与android工作室工作,我有两个输入框,其中用户输入变量。我已经验证了用户只输入数字,并且营地不是空的。我在这里没有问题。我的问题是当我输入2和1。这会导致分母等于0。当这种情况发生时,我得到一个错误,我的应用程序关闭。

var auxiliar = varF/2
if (varX != 0 && varF != 0 && auxiliar != varX) {
var resultado = ((2*varX)+varF) / (varX-(2*varF))
resultadoFormula.setText("a = ${resultado}")
} else {
message("Combinacion Incorrecta")
}

这是我的代码。我很感激你的帮助。

我得到这个错误。E/AndroidRuntime: FATAL EXCEPTION: maincom . example。过程:eval_2_data, PID: 8657java.lang.ArithmeticException:除零

你需要确保varX != 2*varF,因为如果它是,分母是0。((2*varX)+varF) / (varX-(2*varF))的分母上有2-2*1,因为是零。当被0除时,这将导致抛出异常。

try catch块将阻止致命错误并允许应用程序继续运行。

var auxiliar = varF/2
try {
if (varX != 0 && varF != 0 && auxiliar != varX) {
var resultado = ((2*varX)+varF) / (varX-(2*varF))
resultadoFormula.setText("a = ${resultado}")
} else {
message("Combinacion Incorrecta")
}
} catch (ArithmeticException e) {
System.out.println("I didn't do my math correctly.")
}

最新更新