質問
私はちょうど私のプログラムでは、いくつかの数の操作でバグを発見し、私は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)
FloatDomainError
です
さて、正しい私私が間違っているが、NaN
(未A Number)を持っている意味的に間違っていないようだ場合には、タイプ、数値のこと?誰かが私にこれを説明することはできますか?
ところで使用したJRuby-1.4.1
解決
IEEE 754浮動小数点数はゼロで言う分裂をすることができますに反応することを可能にするために-INFINITY + INFINITYとNotANumberを定義します。あなたはまた、例えば2 + INF = INF
のためにこれらを計算することができますNaNのuniqeルビーの機能ではありませんが、彼らはJavaで数値で、C ++、...あまりに
他のヒント
私は思うのNaNを作る数は完全に理にかなっていること...
IRBに0.0 / 0.0を試みる - >結果は、(この場合は無限大である)NaNである
インフィニティは数学的にある種類数の、まだ、あなたはデータ型とそれを表現することはできません...数学では、あなたが特別な記号を使用しすぎて...
PS:あなたはmetric.nanを使用することができますか?それはあなたが...
期待通りに動作するはずです...それをチェックします所属していません StackOverflow