在laravel 5.1中更精确地将float更改为float

时间:2015-07-16 08:40:05

标签: mysql laravel-5

我有一个数据库,有两个浮点数用于纬度和经度,但我看到它们在两个位置精度后被切断。 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数?

2 个答案:

答案 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();
    }
}
  

尝试一下。