在sqlite中存储小数

时间:2014-05-19 08:05:42

标签: ruby-on-rails sqlite

我正在使用Roo gem从电子表格中导入一些值。

一个单元格的值为9.29

但导入后会保存为9.289999999999999

所以我添加了导入方法:

product.standard_price = row["standard_price"].to_f.round(2)

我认为应该围绕它,但没有变化。

我也像这样改变了列精度

change_column:products,:standard_price,:decimal,:precision => 10,:scale => 2

但仍然存储为9.289999999999999

即使我编辑这个条目并放入9.29,它也会存储所有这些小数。

这对我来说是一个谜。

1 个答案:

答案 0 :(得分:1)

通常最好将价格存储为整数。所以你必须乘以100并存储该值,例如929.然后,当您显示数字时,只需将您从数据库中获得的数字除以100。

或者,您可以将其存储为文本格式。