7

私のアプリで「FloatDomainError」が表示され、サーバーが通常は違反を説明する「NaN」というメッセージが表示されます。サーバーエラーページは、これらの行を示しています(まあ、最初の行):

n = ((self.weight * (c.percent)/100) / c.package_weight).to_i
n.times do 

問題は.to_iにあるようです。これは、合計が8.35になる整数に変換することを目的としているため、n回実行できます。

問題は、to_iを削除すると、論理的には十分に、float8.35のメソッド「回」がないことを通知するエラーが発生することです。しかし、8.35を整数に丸めることができない理由がわかりません。.floorも試しましたが、FloatDomainErrorが発生します。

これを丸めて機能させる方法についてのアイデアはありますか?

ありがとう!

4

1 に答える 1

15

このエラーは、NaN値をintに変換しようとしたことを意味します。NaNは「数字ではない」の略です。これはおそらく、計算に欠陥があり、8.35にならないことを意味します。たぶん、の値c.package_weightはゼロであり、それで除算します。

于 2012-10-03T08:21:28.770 に答える