What is the best way to prevent divide by 0 in javascript that is accepting user inputs. If there is no particular way to achieve this what would be the best way to handle such a situation so as to not prevent other scripts from executing?
Any insights are much appreciated.
The output of the code in JavaScript is as follows: Dividing the number 0 by 0 returns NaN. Dividing the positive number by 0 returns Infinity. Dividing the negative number by 0 returns -Infinity.
Solution(By Examveda Team)Division by zero is not an error in JavaScript: it simply returns infinity or negative infinity. There is one exception, however: zero divided by zero does not have a welldefined value, and the result of this operation is the special not-a-number value, printed as NaN.
There is no way to do that with the normal /
and /=
operators.
The best way to do what you want is with guards:
function notZero(n) { n = +n; // Coerce to number. if (!n) { // Matches +0, -0, NaN throw new Error('Invalid dividend ' + n); } return n; }
and then do division like
numerator / notZero(denominator)
Alternatively you can always guard the output
function dividend(numerator, denominator) { var quotient = numerator / denominator; if (quotient !== quotient) { throw new Error(numerator + " / " + denominator); } return quotient; }
but that loses the readability and expressiveness of /=
.
Off the top of my head you could:
isFinite()
and if not then handle appropriately.If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With