我目前正在建立一个有发票的工作的内联网。我目前正在编写测试,以确保增值税总结正确,等等。价格太准确在我的Rails应用程序
我注意到,在一些金额上,该Rails/Ruby似乎更准确,它需要。我得到这个:expected there to be content "2586.6099999999997"
。当它应该是1
时,请注意099999999997
。
在我的数据库迁移文件,我有这样的 - 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")
对于货币值,切勿使用浮动值。将金额存储为整数字段中的美分/分,或者以十进制类型存储。 –
你能发布你的规范代码吗? –
在问题 –