MySQL存储Floats

时间:2012-06-25 08:42:07

标签: mysql floating-point latitude-longitude

我正在尝试保存一个这么长的浮点数

  

13.00386644742523

它基本上是Lat和Lng值。 当我将其保存在数据库中时,它将被存储为

  

13.0039

3 个答案:

答案 0 :(得分:6)

您应该明确使用精度,类型应为DECIMAL FLOAT  因为小数点后的每个数字都很重要,你不能让它们因为四舍五入而改变。

`lat`  DECIMAL(16,14)

继续阅读manual

答案 1 :(得分:4)

根据经验,我为ARINC424构建的导航数据库做了这个,并最终使用DECIMAL(18,12)以弧度存储值。

注意:浮动和双打不精确,可能导致舍入错误

关键是当使用度数或弧度时,我们知道值的范围 - 而小数部分需要最多的数字。

最好的方法是使用MySQL Spatial Extensions

答案 2 :(得分:2)

我认为列的data type定义为Float(N,4),其中N是数字,4是允许的小数位数。这就是它将存储值四舍五入的原因。

存储Lat / Long的最佳方法是使用spatial data type。 POINT几何类型将保存您的值