3 ms·
It's so easy to blame JS though. I recently rediscovered that it can't do divide by zero right. And it even does it wrong in two different ways: > 1/0
by boxed 3y ago
It's so easy to blame JS though. I recently rediscovered that it can't do divide by zero right. And it even does it wrong in two different ways:
> 1/0
Infinity
> 0/0
NaN
- spc476 3y agoThat's not the fault of JavaScript, but of IEEE-754 floating point math. The behavior you're seeing is per design.
- boxed 3y agoThat's a huge copout, and thankfully not one Python follows.
- HKayn 3y agoJavaScript's behaviour in this case is consistent if we accept that JavaScript would always rather compute the next-best gibberish than throw an error. While `1 / 0` is not a valid operation, it can be interpreted using limits. If `x` approaches 0, then `1 / x` will approach `Infinity`, hence JavaScript's result of this operation. But with `0 / 0`, there is no unambiguous interpretation, so JavaScript defaults to `NaN` as its indicator for when a number is expected, but not received in valid form. I'm not defending this behaviour of the language, just pointing out that there aren't "two different ways" of wrong behaviour at display here.