Hello Mike, peut-être utilises-tu le type float pour ta valeur en base de données (MySQL j'imagine ?) MySQL stocke les "float" sur 4 octets (cf http://dev.mysql.com/doc/refman/5.0/en/numeric-types.html) ce qui ne permet pas de mémoriser un décimal avec une grande précision.
Dans ton cas, si Price est un model avec :price_as_float une colonne en float, tu auras: >> Price.create(:price_as_float => 96.20825).reload.price_as_float => 96.2083 (et non 96.20825) Côté base tu auras un: INSERT INTO prices (price_as_float) VALUES(96.20825) qui stockera au final 96.2083 et non 96.20825 Si tu dois stocker des chiffres avec une meilleure précision, tu peux t'orienter vers t.decimal :price_as_decimal, :precision => 30, :scale => 20 (précision et scale à adapter en fonction de tes besoins - regarde la doc MySQL de près). Ex: >> Price.create(:price_as_decimal => 96.20825).reload.price_as_decimal == >> 96.20825 => true Si tu veux tout savoir sur le pourquoi du comment (stockage en mémoire des flottants), je pense que tu trouveras l'article suivant intéressant: http://www.codeproject.com/KB/dotnet/ExtremeFloatingPoint1.aspx good luck! Thibaut Barrère / LoGeek -- http://blog.logeek.fr - learning content for developers http://evolvingworker.com - tools for a better day http://faire-autrement.fr - la simplicité au quotidien --~--~---------~--~----~------------~-------~--~----~ Vous avez reçu ce message, car vous êtes abonné au groupe "Railsfrance" de Google Groups. Pour transmettre des messages à ce groupe, envoyez un e-mail à l'adresse [email protected] Pour résilier votre abonnement envoyez un e-mail à l'adresse [EMAIL PROTECTED] -~----------~----~----~----~------~----~------~--~---
