经纬度小数点后与精确到米的误差

来源:互联网 发布:python pdf 下载 编辑:程序博客网 时间:2024/05/17 06:32
如下表所示
赤道周长(米)度数(度)40076000360111322.2222111132.222220.11113.2222220.01111.32222220.00111.132222220.00011.1132222220.000010.1113222220.0000010.0111322220.0000001所以,只需要精确到小数点后7位,精度就是1CM,因此,数据库保存经纬度采用 decimal(10,7) 即可。

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

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

如下表所示
赤道周长(米)度数(度)40076000360111322.2222111132.222220.11113.2222220.01111.32222220.00111.132222220.00011.1132222220.000010.1113222220.0000010.0111322220.0000001所以,只需要精确到小数点后7位,精度就是1CM,因此,数据库保存经纬度采用 decimal(10,7) 即可。

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

问题2:为什么不用字符串?
答:字符串不方便数据库计算
0 0
原创粉丝点击