ker*_*ion 3 mysql ruby-on-rails where-clause
假设我有一个名为 的 Rails 模型Position,两列latitude和longitude(均定义为浮动)。我已经用一些位置值填充了模型。现在我试图根据它的纬度找到位置:
positions = Position.where('positions.latitude = ?', 50.0)
Run Code Online (Sandbox Code Playgroud)
返回零。即使我尝试这个:
lat = Position.first.latitude
positions = Position.where('positions.latitude = ?', lat)
Run Code Online (Sandbox Code Playgroud)
结果为零。我的生产数据库是mysql。上面的代码在开发中(sqlite)。我的假设是它与数据类型的处理方式有关,但我不明白。有人有什么想法吗?
当您需要精确的数值时,请勿使用FLOAT或。DOUBLE
阅读https://dev.mysql.com/doc/refman/8.0/en/problems-with-float.html
相反,使用DECIMALor NUMERIC(它们是同义词)。
请参阅存储纬度和经度的准确度应如何?DECIMAL有关用于纬度和经度的具体精度的一些指导。
| 归档时间: |
|
| 查看次数: |
771 次 |
| 最近记录: |