mysql 保存纬度和经度的问题(削减数字)laravel
issue with mysql save latitude and longitude (cut numbers) laravel
这与 mysql (5.7.32) php (8.0.0) 和 laravel 8 一起使用。
我使用传单获取纬度和经度。事实上,我做了测试,在数据库中手动保存号码,但同样的错误发生了
当我用 phpmyadmin 查看数据库时,我准确地看到了它应该是的数字:
-32.84240531063937 但当我将这些值与 laravel 并执行 dd() -32.842405310639
删除最后的数字 (37)。
mysql 上的数据类型是 DOUBLE,没有 Length/Values
这就是我从数据库中获取数字的方式。
我有一个叫做 table 的投诉,其中每个投诉都有经纬度
所以现在我需要获取所有具有 (comune_name = Llay Lay) 的记录
我就是从那里得到第一条记录的纬度和经度的。
$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。
PHP 与您的数据库解决方案相比,工作精度不同。
如果您想保持精度,请考虑将它们存储为 64 位有符号整数。
要在逗号 ',' 后保留一个长数字,您可以使用 decimal:
$table->decimal('lng', 10, 18);
$table->decimal('lat', 10, 18);
DECIMAL 列的声明语法是 DECIMAL(M,D)。参数取值范围如下:
M是最大位数(精度)。它的范围是 1 到 65。
D是小数点右边的位数(刻度)。它的范围是0到30,并且不能大于M。
值得一提的是,您应该将其转换为模型中 $cast 属性中的浮点数,在 Laravel 文档中,有十进制转换,但尚未准备好!
有关详细信息,请参阅 。
这与 mysql (5.7.32) php (8.0.0) 和 laravel 8 一起使用。 我使用传单获取纬度和经度。事实上,我做了测试,在数据库中手动保存号码,但同样的错误发生了
当我用 phpmyadmin 查看数据库时,我准确地看到了它应该是的数字: -32.84240531063937 但当我将这些值与 laravel 并执行 dd() -32.842405310639 删除最后的数字 (37)。
mysql 上的数据类型是 DOUBLE,没有 Length/Values
这就是我从数据库中获取数字的方式。
我有一个叫做 table 的投诉,其中每个投诉都有经纬度 所以现在我需要获取所有具有 (comune_name = Llay Lay) 的记录 我就是从那里得到第一条记录的纬度和经度的。
$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。
PHP 与您的数据库解决方案相比,工作精度不同。
如果您想保持精度,请考虑将它们存储为 64 位有符号整数。
要在逗号 ',' 后保留一个长数字,您可以使用 decimal:
$table->decimal('lng', 10, 18);
$table->decimal('lat', 10, 18);
DECIMAL 列的声明语法是 DECIMAL(M,D)。参数取值范围如下:
M是最大位数(精度)。它的范围是 1 到 65。
D是小数点右边的位数(刻度)。它的范围是0到30,并且不能大于M。
值得一提的是,您应该将其转换为模型中 $cast 属性中的浮点数,在 Laravel 文档中,有十进制转换,但尚未准备好!
有关详细信息,请参阅