Ruby 浮点域错误

Ruby 浮点域错误,ruby,ruby-on-rails-3,Ruby,Ruby On Rails 3,我的应用程序中出现了一个“FloatDomainError”,上面有一条消息“NaN”,服务器通常会在这里描述这种攻击行为。服务器错误页面向我指出以下几行(第一行): 问题似乎出在.to_i上,它意味着将总计为8.35的值转换成整数,这样我就可以做n次 问题是,如果我把它拿走,我会得到一个错误,告诉我,逻辑上,浮点8.35没有“times”方法。但我不明白为什么它不让我把8.35四舍五入到一个整数。我也试过了。floor,但我得到了FloatDomainError 关于如何圆满解决这个问题以便我

我的应用程序中出现了一个“FloatDomainError”,上面有一条消息“NaN”,服务器通常会在这里描述这种攻击行为。服务器错误页面向我指出以下几行(第一行):

问题似乎出在.to_i上,它意味着将总计为8.35的值转换成整数,这样我就可以做n次

问题是,如果我把它拿走,我会得到一个错误,告诉我,逻辑上,浮点8.35没有“times”方法。但我不明白为什么它不让我把8.35四舍五入到一个整数。我也试过了。floor,但我得到了FloatDomainError

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


谢谢

此错误表示您试图将NaN值转换为int。NaN表示“不是数字”。这可能意味着你的计算有缺陷,结果不是8.35。也许
c.package\u weight
的值是零,你可以用它来除。

为了给你的正确答案添加更多的上下文,具体来说,这是通过将0.0除以0或0.0得出的。如果是任何其他数字除以0.0,则例外情况为
FloatDomainError:Infinity
。如果它是任何除以普通0的值,那么它就是
ZeroDivisionError
n = ((self.weight * (c.percent)/100) / c.package_weight).to_i
n.times do