2012-10-03 18 views
6

Właśnie dostałem "FloatDomainError" w mojej aplikacji, z komunikatem "NaN", gdzie serwer zwykle opisywałby przestępstwo. Na stronie błąd serwera wskazuje mi tych linii (no, pierwszy):Błąd domeny pływaka

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

Problem wydaje się być z .to_i, które jest przeznaczone do konwersji wynosi do 8,35 co do liczby całkowitej, więc mogę zrobić w tym czasie.

Problem polega na tym, że jeśli zabiorę się stąd, otrzymuję komunikat o błędzie, logicznie mówiąc, że nie ma metody "razy" dla pływaka 8.35. Ale nie rozumiem, dlaczego nie pozwala mi zaokrąglić 8.35 na liczbę całkowitą. Próbowałem też .floor, ale otrzymuję FloatDomainError.

Pomysły, jak to zaokrąglić, abym mógł je uruchomić?

Dzięki!

Odpowiedz

13

Ten błąd oznacza, że ​​próbujesz przekonwertować wartość NaN na int. NaN oznacza "Not a number". To prawdopodobnie oznacza, że ​​twoje obliczenia są błędne i nie dają wyniku 8.35. Może wartość c.package_weight wynosi zero i dzielisz się z nią.

Powiązane problemy