数据库保存经纬度,需要采用什么数据类型,小数点应该精确多少位?



如下表所示
赤道周长(米)度数(度)
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) 即可。

问题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) 即可。

问题1:为什么不采用float?
答:float,double容易产生误差,对精确度要求比较高时,建议使用decimal来存,decimal在mysql内存是以字符串存储的,

问题2:为什么不用字符串?
答:字符串不方便数据库计算


版权声明:本文为lzjpc500原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。