首页 > 解决方案 > mysql保存纬度和经度(切号)laravel的问题

问题描述

这适用于 mysql (5.7.32) php (8.0.0) 和 laravel 8。我使用传单得到 lat 和 lng。事实上我做了测试在数据库中手动保存数字并且发生了同样的错误

当我用 phpmyadmin 查看数据库时,我看到的确切数字应该是:-32.84240531063937 但是当我用 laravel 带来这些值并执行 dd() -32.842405310639 时,删除最后一个数字(37)。

mysql 上的数据类型是 DOUBLE,没有长度/值

这就是我从数据库中获取数字的方式。

我有一个名为投诉的表,其中每个表都有 lat 和 lng 所以现在我需要获取所有具有 (comune_name = Llay Lay) 的记录,并且从那里我从第一条记录中获取 lat 和 lng。


$complaints = Complaint::where('comune_name', 'Llay Llay')->get()->toArray();

$denounced_lat = $complaints[0]['lat']; //lat of first complaint
$denounced_lng = $complaints[0]['lng']; //lng of first complaint

  dd($denounced_lat); //acá está el error

我在数据库中看到的数字是:-32.84240531063937 而dd()得出的数字是:-32.842405310639

谢谢 :)

编辑:最后我保存为 VARCHAR。

标签: mysqllaravelleafletdouble

解决方案


与您的数据库解决方案相比,PHP 的工作精度不同。

如果要保持精度,请考虑将它们存储为 64 位有符号整数。


推荐阅读