关于mysql:为什么我不能在rails迁移中为float设置精度和比例?

Why can't I set precision and scale for float in rails migration?

运行此迁移后,我的地理纬度和地理经度列的类型为"float"(无精度和比例)。我可以直接运行SQL查询并将类型更改为float(10,6),那么为什么迁移会忽略我的精度和比例参数呢?

1
2
3
4
def change
  add_column :item_exifs, :geo_latitude, :float, precision: 10, scale: 6, null: false, default: 0
  add_column :item_exifs, :geo_longitude, :float, precision: 10, scale: 6, null: false, default: 0
end


尝试将类型更改为十进制,

1
2
3
4
def change
  add_column :item_exifs, :geo_latitude, :decimal, precision: 10, scale: 6, null: false, default: 0
  add_column :item_exifs, :geo_longitude, :decimal, precision: 10, scale: 6, null: false, default: 0
end

一些活动记录版本根据所使用的数据库有几种奇怪的行为

活动记录中的浮点与小数

见@rokibul hasan和@ryan0答案