ruby on rails cómo lidiar con NaN
ruby-on-rails ruby-on-rails-3 (1)
NaN
es una instancia de Float
. Use Float#nan?
método.
>> 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
ACTUALIZAR
NaN
también podría ser una instancia de BigDecimal
:
((nan.is_a?(Float) || nan.is_a?(BigDecimal)) && nan.nan?) ? 0 : nan
o
{Float::NAN => 0, BigDecimal::NAN => 0}.fetch(nan, nan)
He leído algunas publicaciones con respecto a NaN
pero no encontré la forma de manejarlo en Ruby on Rails. Quiero verificar un valor si es un NaN
. Quiero reemplazarlo con cero (0). Intenté lo siguiente
logger.info(".is_a? Fixnum #{percent.is_a? Fixnum}")
cuando el porcentaje tiene NaN
me devuelve falso.
He hecho algunos cambios en el registrador
logger.info("Fixnum #{percent.is_a? Fixnum} percent #{percent}")
Salida
Fixnum false percent 94.44444444444444
Fixnum false percent NaN
Fixnum false percent 87.0