刚刚在我的应用程序中出现“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。
关于如何解决这个问题以便让它发挥作用的想法?
谢谢!
最佳答案
此错误表示您试图将 NaN 值转换为 int。 NaN 代表“不是数字”。这可能意味着您的计算有缺陷,结果不是 8.35。也许 c.package_weight
的值为零,你用它除。
关于ruby - float 域错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12704462/