Un peu de calcul.
Voilà ce que me donne IRB la console Ruby :
irb(main):002:0> 1.16*100
=> 116.0
irb(main):003:0> (1.16*100).truncate
=> 115
irb(main):004:0> (116.0).truncate
=> 116
Alors en fait voilà comment ça marche :
Le float est imprécis : 116.0 peut-être en réalité : 115.999999999999999985 ou bien 116.000000000000000325. Etant donné que To_i extrait la valeur entière dans le premier cas to_i renvoie 115.0 dans l'autre cas 116.0, bon du coup il vaut mieux utilisé 'round' pour arrondir cela sera plus juste !