runoops.com

MySQL 数据库中如何存储经纬度

使用decimal(10,7)

1、为什不用float?

float,double 容易产生误差,对精确度要求比较高时,建议使用 decimal 来存,decimal 在 mysql 内存是以字符串存储的。

2、为什么不用字符串?

字符串不方便数据库计算

如图:

赤道周长(米)度数(度)
40076000360
111322.22221
11132.222220.1
1113.2222220.01
111.32222220.001
11.132222220.0001
1.1132222220.00001
0.1113222220.000001
0.0111322220.0000001

所以,只需要精确到小数点后7位,精度就是1CM,因此,数据库保存经纬度采用 decimal(10,7) 即可。