私は現在、請求書を持っている仕事のためのイントラネットを構築しています。私は現在、VATが正しく合計されているかどうかを確認するためのテストを書いています。私のRailsアプリケーションの価格が高すぎます
Rails/Rubyはもっと正確である必要があると私は気づきました。私はこれを得る:expected there to be content "2586.6099999999997"
。それが1
であるべきとき099999999997
に注目してください。私は2586.61
ない2586.60999...
を合計しなければならない二つの値、949
と1637.61
を追加しようとしています私のテストでt.decimal :price, :precision => 8, :scale => 2
- 私のDB移行ファイルで
私はこれを持っています。
どのような問題がありますか?
10進数を使用すべきか、整数を使うべきですか?
EDIT:仕様コードは、基本的にはちょうどこのpage.should have_content(item1.price + 1637.61)
です。 item1はFactoryGirlを使用しています。手動でデータベースの列が実際にはそれが必要のように機能しているようですね。このpage.should have_content(949 + 1637.61)
item1 = FactoryGirl.create(:item, :quantity => 1, :price => 949.00, :description => "macbook for 949")
、floatを使用しないでください。金額をセントラルフィールドまたは小数点の型としてセント/ペニーとして格納します。 –
スペックコードを掲載できますか? –
質問で問題が発生しているスペックコードを追加する –