7

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

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

问题似乎出在 .to_i 上,它旨在将总计为 8.35 的值转换为整数,这样我就可以做 n.times 了。

问题是,如果我把 to_i 拿走,我会得到一个错误,从逻辑上讲,float 8.35 没有方法“times”。但我不明白为什么它不让我将 8.35 舍入为整数。我也尝试过 .floor,但我得到了 FloatDomainError。

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

谢谢!

4

1 回答 1

15

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

于 2012-10-03T08:21:28.770 回答