質問

私はちょうど私のプログラムでは、いくつかの数の操作でバグを発見し、私は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を使用することができますか?それはあなたが...

期待通りに動作するはずです...それをチェックします
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top