PHP用来处理传入的经纬度,然后做一个格式化。
传入的经纬度<?php //经度lag = 22.532987
//纬度lng = 113.93044399999997
$maplat = 22.532987; /* 精度 */
$maplng = 113.93044399999997; /* 纬度 */echo floatval($maplng); //输出 113.930444,自动忽略了末尾的几位,只保留了小数点后6位
现在要的是如何格式化这个保留小数点后这几位?
另外的我存放经纬度是用数据库MySQL的DOUBLE的double(13,10)。这样合理吗?
传入的经纬度<?php //经度lag = 22.532987
//纬度lng = 113.93044399999997
$maplat = 22.532987; /* 精度 */
$maplng = 113.93044399999997; /* 纬度 */echo floatval($maplng); //输出 113.930444,自动忽略了末尾的几位,只保留了小数点后6位
现在要的是如何格式化这个保留小数点后这几位?
另外的我存放经纬度是用数据库MySQL的DOUBLE的double(13,10)。这样合理吗?
可以使用bigint,用64位php或者gmp库计算,就不会有误差了
实际上int够了,经纬度乘以10000000取整,已经精确到厘米级别了
代码修改为:
<?php
//经度lag = 22.532987
//纬度lng = 113.93044399999997
$maplat = 22.532987; /* 精度 */
$maplng = 113.93044399999997; /* 纬度 */printf('%.14f',$maplng); //正确输出113.93044399999997
?>