首页 > 解决方案 > 不能除以零异常

问题描述

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

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

有两个主要问题,一个是 X 和 F 为 0,我对此有一个 if 语句。第二个问题是如果 F 是 X 的一半,这将使我的分母为 0。

由于我正在使用 android studio,因此我有两个输入框,用户可以在其中输入变量。我已经验证了用户只输入了数字并且营地没有空着。我这里没有问题。我的问题是当我输入 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:致命异常:主进程:com.example.eval_2_data,PID:8657 java.lang.ArithmeticException:除以零

标签: android-studiokotlin

解决方案


您需要确保varX != 2*varF,因为如果这样做,分母为 0.((2*varX)+varF) / (varX-(2*varF))2-2*1在分母中,因为 pemdas 为 0。每当除以 0 时,这将导致抛出异常。


推荐阅读