I know my error is a common one, but I do have an if condition to catch this error. I’m working with android studio. The language I’m using is kotlin.
I want to calculate this formula: A = ((2varX)+varF) / (varX-(2varF)).
There are two main problems, one is that X and F are 0, I have an if statement for this. The second issue would be if F is half of X, this would give me 0 in my denominator.
Since I’m working with android studio I have two input boxes where the user inputs the variables. I have already validated that the user inputs only numbers and that the camps are not left empty. I have no issue here. My problem is when I input 2 and 1. This would cause my denominator to be 0.
When this happens, I get an error and my app shuts down.
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")
}
This is my code. I would appreciate the help.
I get this error.
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.eval_2_data, PID: 8657
java.lang.ArithmeticException: divide by zero
2
Answers
You need to make sure
varX != 2*varF
, because if it does the denominator is 0.((2*varX)+varF) / (varX-(2*varF))
will have2-2*1
in the denominator, which is 0 because of pemdas. Whenever there is division by 0, this will cause an exception to get thrown.A try catch block will stop the fatal error and allow the app to continue running.