我读了几篇有关NaN
Ruby on Rails的文章,但没有弄清楚如何处理它。我想检查一个值是否是NaN
我想用零(0)替换它。我尝试了以下
logger.info(".is_a? Fixnum #{percent.is_a? Fixnum}")
当百分比有NaN
它返回我为假。
我在记录器中所做的更改很少
logger.info("Fixnum #{percent.is_a? Fixnum} percent #{percent}")
输出量
Fixnum false percent 94.44444444444444
Fixnum false percent NaN
Fixnum false percent 87.0
NaN
是的实例Float
。使用Float#nan?
方法。
>> 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
更新
((nan.is_a?(Float) || nan.is_a?(BigDecimal)) && nan.nan?) ? 0 : nan
要么
{Float::NAN => 0, BigDecimal::NAN => 0}.fetch(nan, nan)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句