【发布时间】:2013-10-24 07:38:36
【问题描述】:
我正在使用 gmaps4rails,为了存储来自用户标记的准确坐标,我使用 字符串数据类型 来表示纬度和经度。
但是,即使页面上的纬度/经度字段填充了整个数字(即37.79560594600171 和 30.794677734375),当我检查日志时,这些是插入的数字:37.818138 和30.7336038。它们以某种方式近似?!
但是,如果我从编辑屏幕编辑该项目,则整个值都会毫无问题地存储。我可以在我的日志和数据库中看到这一点。
我还尝试使用小数(精度为 16,小数位数为 14)而不是字符串。但是,我的数据库仍然会存储一个长数字的近似部分,然后用 0 填充其余部分。例如,像这样:44.31223760000000。
我使用 Ruby 2 和 Rails 4 和 mysql 作为数据库。但我认为问题出在 activerecord 上,因为它是将值存储在 db 中的那个?
这些来自我的新/编辑表单:
<%= f.label :latitude %>
<%= f.text_field :latitude %>
<%= f.label :longitude %>
<%= f.text_field :longitude %>
任何想法将不胜感激。谢谢!
【问题讨论】:
标签: mysql ruby-on-rails activerecord numbers ruby-on-rails-4