我刚刚发现我的程序中存在一些数字操作的错误,导致出现了 FloatDomainError (NaN)
错误。
于是我开始记录传入的数字:
if(metric.is_a?(Numeric))
self.metric = metric
else
LOGGER.warn("metric #{metric} is not a number")
self.metric=0
end
但是传入的数字是NaN
,显然is_a?(Numeric)
,因为我没有收到日志警告,它将度量传递给我的metric=方法,这就是我得到FloatDomainError
的地方。
现在,请纠正我如果我错了,但是似乎将一个NaN
(不是数字)作为数字类型是语义上错误的。有人能向我解释一下吗?
顺便说一下,我使用的是Jruby-1.4.1