ruby on rails how to deal with NaN
NaN
is instance of Float
. Use Float#nan?
method.
>> nan = 0.0/0 # OR nan = Float::NAN=> NaN>> nan.class=> Float>> nan.nan?=> true>> nan.is_a?(Float) && nan.nan?=> true>> (nan.is_a?(Float) && nan.nan?) ? 0 : nan=> 0
UPDATE
NaN
could also be an instance of BigDecimal
:
((nan.is_a?(Float) || nan.is_a?(BigDecimal)) && nan.nan?) ? 0 : nan
or
{Float::NAN => 0, BigDecimal::NAN => 0}.fetch(nan, nan)