MySQL存储Floats

Har*_*M V 3 mysql floating-point latitude-longitude

我想保存一个这么久的浮点数

13.00386644742523

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

13.0039

Shi*_*dim 7

您应该明确地使用精度,并且类型应该DECIMAL 不是 FLOAT 因为小数点后的每个数字都很重要,并且您不能让它们因为舍入而允许更改.

`lat`  DECIMAL(16,14)
Run Code Online (Sandbox Code Playgroud)

阅读手册


Ric*_*son 5

根据经验,我对从 ARINC424 构建的导航数据库执行了此操作,并最终使用 DECIMAL(18,12) 来存储以弧度为单位的值。

注意:浮点数和双精度数不那么精确,可能会导致舍入错误

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

最好的方法是使用MySQL Spatial Extensions