Make #finite? consistent with #nonzero?
.nonzero? on a number returns itself (truthy) or nil, but calling
.finite? on a float is just true or false.
Floats can produce Infinity without errors and cause downstream errors if that result is unexpected. This would be nice to have:
top, bottom = 9.9, 0.0 (top / bottom).finite? or raise DivisionByZero (top / bottom).finite? || 0.0 (9.9 / 2.0).finite? #=> 0.5 (9.9 / 0.0).finite? #=> nil
These semantics would let the user handle the desired behaviour immediately in place.