gpt4 book ai didi

mysql - 为什么 Rails 在使用不同的数据库时返回不同的浮点值?

转载 作者:行者123 更新时间:2023-11-29 18:20:46 24 4
gpt4 key购买 nike

我有一个通过此迁移运行 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 作为金额的数据。

当我使用 SQLite 作为数据库在控制台中访问 amount 时:

 >  NutrientAmount.find(1).amount
=> 0.8

当我使用MySQL作为数据库在控制台访问amount时:

>  NutrientAmount.find(1).amount
=> 0.800000011920929

如果我在终端中打开 MySQL 并运行

mysql> SELECT amount FROM nutrient_amounts WHERE id = 1;
+--------+
| amount |
+--------+
| 0.8 |
+--------+

我在这里很困惑。这是预期的行为吗?使用 MySQL 时 Rails 不应该返回 0.8 吗?

最佳答案

好吧,我解决了这个问题 - 这取决于我在 database.yml 中使用的适配器。

我使用的是mysql,所以我升级到了mysql20.8 现在已按预期返回。

关于mysql - 为什么 Rails 在使用不同的数据库时返回不同的浮点值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46604848/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com