我目前正在为有发票的工作建立一个 Intranet。我目前正在为其编写测试,以确保增值税汇总正确等。
我注意到在某些方面,Rails/Ruby 似乎比它需要的更准确。我明白了:expected there to be content "2586.6099999999997"
。注意099999999997
它应该是什么时候1
。
在我的数据库迁移文件中,我有这个 -t.decimal :price, :precision => 8, :scale => 2
在我的测试中,我只是试图将两个值相加,949
并且不1637.61
应该相加。2586.61
2586.60999...
会有什么问题?
我应该使用十进制还是应该使用整数?
编辑:规范代码基本上就是这个page.should have_content(item1.price + 1637.61)
。item1 正在使用 FactoryGirl。
当像这样手动将 949 或 949.00 放入测试中时,我遇到了同样的问题page.should have_content(949 + 1637.61)
item1 = FactoryGirl.create(:item, :quantity => 1, :price => 949.00, :description => "macbook for 949")