我有一个使用此迁移运行Rails 4.2的应用
create_table "nutrient_amounts", force: :cascade do |t|
t.integer "nutrient_id", limit: 4
t.integer "food_id", limit: 4
t.float "amount", limit: 24
end
使用SQLite和MySQL运行此迁移后,我已将0.8
的一行数据作为amount
添加到两者中。
当我使用SQLite作为数据库访问控制台中的金额时:
> NutrientAmount.find(1).amount
=> 0.8
当我使用MySQL作为数据库访问控制台中的金额时:
> NutrientAmount.find(1).amount
=> 0.800000011920929
如果我在终端中打开MySQL并运行
mysql> SELECT amount FROM nutrient_amounts WHERE id = 1;
+--------+
| amount |
+--------+
| 0.8 |
+--------+
我在这里很困惑。这是预期的行为吗?使用MySQL时,Rails不应该返回0.8
吗?
答案 0 :(得分:0)
好吧,我解决了这个问题 - 这是我在database.yml
内使用的适配器。
我使用的是mysql
,所以我升级到了mysql2
。现在按预期返回0.8
。