Je courais:flotteur Mauvais Ruby et le résultat de soustraction BigDecimal
[~/ruby/rails/sas]$ ruby --version
ruby 1.8.7 (2009-06-08 patchlevel 173) [universal-darwin10.0]
sur Mac Snow Leopard 10.6.3
peut-elle aider quelqu'un pour expliquer pourquoi la soustraction et Float BigDecimal peut être ce mal.
[~/ruby/rails/sas]$ console
Loading development environment (Rails 2.1.1)
>> num = 30.0
=> 30.0
>> num.class
=> Float
>> ex = 28.04.to_d
=> #<BigDecimal:105367e40,'0.284E2',8(8)>
>> ex.class
=> BigDecimal
>> num - ex
=> 1.6
>> _.class
=> Float
>>
J'espérais que le résultat devrait être 1.96, je sais que peut-être faire une opération arithmétique en utilisant 2 différents types de données ne sont pas recommandés, mais ce comportement est si étrange.
Il semble sage que désormais, je dois vérifier le type de données de variables avant de faire n'importe quelle opération arithmétique.
J'espère que quelqu'un pourra me donner un aperçu de ce qui se passe.
Ce n'est pas causée par le mélange de deux types. De la sortie "#" on peut voir que votre variable ex a la valeur 28.4, le problème doit survenir dans la fonction to_d. Je ne peux pas donner plus d'informations car je ne peux pas reproduire votre problème. –