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

  • Post author:
  • Post category:其他



如下表所示


赤道周长(米)

度数(度)

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 版权协议,转载请附上原文出处链接和本声明。