2012-10-03 41 views
6

剛剛在我的應用程序中發現了「FloatDomainError」,並在服務器通常描述的攻擊中顯示消息「NaN」。服務器錯誤頁面指向我這些行(當然,第一個):Float域錯誤

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。

想法如何將此關閉,以便我可以得到它的工作?

謝謝!

回答

13

此錯誤表示您嘗試將NaN值轉換爲int。 NaN代表「不是數字」。這可能意味着你的計算有缺陷,不會導致8.35。也許c.package_weight的值是零,你用它來劃分。