hey*_*led 15 ruby ruby-on-rails
我的数据库中有纬度和经度值,小数点后10位:
+----+---------------+-----------------+
| id | lat | lng |
+----+---------------+-----------------+
| 55 | 34.4208305000 | -119.6981901000 |
| 56 | 30.2671530000 | -97.7430608000 |
Run Code Online (Sandbox Code Playgroud)
我需要查询数据库中的匹配项,但我当前的变量是一个只有6位小数的浮点数:
self.lat => 30.267153
Run Code Online (Sandbox Code Playgroud)
如何将我的浮点数转换为额外的小数位,以便得到匹配?
myloc = Marker.where("lat = ?", self.lat)
Run Code Online (Sandbox Code Playgroud)
我见过Decimal和BigDecimal文档.这些是最好的方法吗?
Ruby 1.8.7,Rails 3.感谢您的任何建议.
Phr*_*ogz 25
你可以使用sprintf- 或者它更简单的兄弟String#%- 将你的浮点数格式化为一个10位小数的字符串:
f = 30.267153
s = "%0.10f" % f
#=> "30.2671530000"
Run Code Online (Sandbox Code Playgroud)
不过,这对我来说似乎很可疑; 你的lat和lng列有哪些类型的字段?您使用的是什么RDBMS?你真的想要完全比较浮点值吗?你真的想把它们作为字符串存储吗?
| 归档时间: |
|
| 查看次数: |
8170 次 |
| 最近记录: |