如下表所示
赤道周长(米) |
度数(度) |
40076000 |
360 |
111322.2222 |
1 |
11132.22222 |
0.1 |
1113.222222 |
0.01 |
111.3222222 |
0.001 |
11.13222222 |
0.0001 |
1.113222222 |
0.00001 |
0.111322222 |
0.000001 |
0.011132222 |
0.0000001 |
所以,只需要精确到小数点后7位,精度就是1CM,因此,数据库保存经纬度采用
decimal(10,7)
即可。
问题1:为什么不采用float?
答:
float,double容易产生误差,对精确度要求比较高时,建议使用decimal来存,decimal在mysql内存是以字符串存储的,
问题2:为什么不用字符串?
答:字符串不方便数据库计算
如下表所示
赤道周长(米) |
度数(度) |
40076000 |
360 |
111322.2222 |
1 |
11132.22222 |
0.1 |
1113.222222 |
0.01 |
111.3222222 |
0.001 |
11.13222222 |
0.0001 |
1.113222222 |
0.00001 |
0.111322222 |
0.000001 |
0.011132222 |
0.0000001 |
所以,只需要精确到小数点后7位,精度就是1CM,因此,数据库保存经纬度采用
decimal(10,7)
即可。
问题1:为什么不采用float?
答:
float,double容易产生误差,对精确度要求比较高时,建议使用decimal来存,decimal在mysql内存是以字符串存储的,
问题2:为什么不用字符串?
答:字符串不方便数据库计算
版权声明:本文为lzjpc500原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。