我有一個處理大量計算的應用程序。這個回調有什麼問題(與NaN打交道)
而不是將相應的值更改爲零它只是提高NaN
。
before_save :change_nan_to_zero
def change_nan_to_zero
self.attributes.each_pair do |key, value|
if value == Float::NAN
value = 0
end
end
end
或者,也許(總是有)有一個更好的方式來處理與南(特別是無處不在將其更改爲0
)。謝謝!
求解
好的,明白了。問題是實際上沒有保存爲NaN
,但它是發佈NaN
的計算(結果未保存到分貝)。所以,我已經結束了與幫手意見(含計算結果):
def zero_or_value(value)
if value.is_a?(Float)
value.nan? ? 0 : value
else
value
end
end
謝謝大家的幫助!我非常感謝! @Marek,我相信你的回答是正確的(我已經用它來解決我的問題了,我肯定會幫你解決問題的,夥計們!)
嘗試寫爲'value.class ==浮動:: NAN' – Gowri 2014-11-05 08:52:42