ruby on rails how to deal with NaN ruby on rails how to deal with NaN ruby ruby

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)