数据库保存经纬度,需要采用什么数据类型,小数点应该精确多少位?
赤道周长(米) | 度数(度) |
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:为什么不用字符串?
- 字符串不方便数据库计算