android-studio - 不能除以零异常
问题描述
我知道我的错误很常见,但我确实有一个 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:除以零
解决方案
您需要确保varX != 2*varF
,因为如果这样做,分母为 0.((2*varX)+varF) / (varX-(2*varF))
将2-2*1
在分母中,因为 pemdas 为 0。每当除以 0 时,这将导致抛出异常。
推荐阅读
- reactjs - 在 React+Redux 中包含更新数据的 setInterval
- java - 从默认浏览器打开 URL 会使应用程序崩溃
- axapta - RecordSortedList 和临时表
- vscode-extensions - 获取语言的格式化程序
- python - Discord bot 发送后删除消息
- ios - Xamarin.Forms 设置 ModalInPresentation
- powershell - PowerShell while 循环中的布尔值
- amazon-web-services - 如何验证跨账户 AWS S3 存储桶是否存在?
- vb.net - 为什么我的 ProgressBar 在使用后台工作时更新晚了?
- pandas - 尽管熊猫识别日期时间索引,但季节性分解图不会显示