Ruby: a conversão de float para número inteiro em ruby produz resultados estranh

ree-1.8.7-2010.02 :003 > (10015.8*100.0).to_i
 => 1001579 
ree-1.8.7-2010.02 :004 > 10015.8*100.0
 => 1001580.0 
ree-1.8.7-2010.02 :005 > 1001580.0.to_i
 => 1001580 

@ruby 1.8.7 produz o mesmo. Alguém sabe como erradicar essa heresia? =)