浮点域错误

时间:2012-10-03 08:17:53

标签: ruby ruby-on-rails-3

我的应用程序中出现“FloatDomainError”,消息“NaN”,服务器通常会在其中描述攻击。服务器错误页面将我指向这些行(嗯,第一行):

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

问题似乎是.to_i,它意味着将总数转换为8.35为一个整数,所以我可以做n次。

问题是,如果我把to_i带走,我得到一个错误告诉我,逻辑上说,浮动8.35没有方法“次”。但我不明白为什么它不让我把8.35整理成一个整数。我也试过.floor,但是我得到了FloatDomainError。

关于如何解决这个问题的想法让我可以让它发挥作用?

谢谢!

1 个答案:

答案 0 :(得分:15)

此错误表示您尝试将NaN值转换为int。 NaN代表“不是数字”。这可能意味着你的计算存在缺陷而不会产生8.35。也许c.package_weight的值为零,你可以除以它。