我有一个数据库,有两个浮点数用于纬度和经度,但我看到它们在两个位置精度后被切断。 Laravel在迁移浮动时似乎创建了DOUBLE(8,2)。
我尝试的是更改浮动并添加位置数,如下所示:
$table->float('latitude', 10, 8)->change();
在laravel 5.1中似乎没有做任何事情,精度仅保持在2个位置。我也尝试了以下内容:
$table->double('latitude', 10, 8)->change();
但是这会导致Doctrine \ DBAL Unknown column type "double" requested.
我有什么想法可以将我现有的lat和lng列更改为8个位置精度的更多precies数?
答案 0 :(得分:1)
使用DECIMAL
列可满足我的精确度需求。将您的double
来电更改为decimal
来电,看看是否有帮助。
我在这里提出了一个与此行为有关的问题:https://github.com/laravel/framework/issues/13773
答案 1 :(得分:0)
如果要求“未知”列类型为“ double”。
use Doctrine\DBAL\Types\FloatType;
use Doctrine\DBAL\Types\Type;
public function up()
{
if (!Type::hasType('double')) {
Type::addType('double', FloatType::class);
}
Schema::table('salary_process', function(Blueprint $table) {
$table->double('total_working_days')->change()->nullable();
}
}
尝试一下。