Я только что нашел ошибку в некоторых манипуляциях с числами в моей программе, и я получаю 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
(не число) типа Numeric ??Может кто-нибудь объяснить мне это?
Кстати, используя Jruby-1.4.1