2012-10-03 12 views
6

Ho appena ricevuto un messaggio "FloatDomainError" nella mia app, con il messaggio "NaN" in cui il server descriveva normalmente il reato. La pagina di errore server mi indica queste righe (o meglio, il primo):Errore dominio float

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

Il problema sembra essere con il .to_i, che ha lo scopo di convertire quello che ammonta a 8,35 in un intero modo che io possa fare le volte

Il problema è che, se prendo to_i, ricevo un errore che mi dice, logicamente, che non esiste un metodo "times" per il float 8.35. Ma non capisco perché non mi permetta di arrotondare l'8,35 a un intero. Ho provato anche .floor, ma ho il FloatDomainError.

Idee su come arrotondare così posso farlo funzionare?

Grazie!

risposta

13

Questo errore indica che si è tentato di convertire un valore NaN in int. NaN sta per "Not a number". Ciò probabilmente significa che il tuo calcolo è difettoso e non risulta in 8.35. Forse il valore di c.package_weight è zero e tu dividi con esso.

Problemi correlati