Только две цифры сохраняются после точки в двойном значении в Laravel 5 и MySQL - PullRequest
0 голосов
/ 05 июля 2018

Я пытаюсь сохранить двойное значение в базе данных MySQl с помощью Laravel. Но только две цифры после точки сохраняются. У меня есть 5 цифр после точки. Например, мое значение составляет 0,01197. Но когда я сохранил в базе данных, он показывает только 0,01. Остальные цифры не сохраняются.

Я использую Laravel 5.6 с PHP 7.1.2 и версией MariaDB 10.1.29. Вот мой код миграции БД:

public function up()
    {
        Schema::create('earnings', function (Blueprint $table) {
            $table->increments('id');
            $table->unsignedInteger('content_id');
            $table->foreign('content_id')->references('id')->on('contents');
          //this is the line for saving double value
            $table->double('income_in_usd', 10, 2);
            $table->timestamps();
        });
    }

Вот код контроллера для сохранения значения в БД:

$earning_id = DB::table('earnings')->insertGetID([
                                'month' => $request->month,
                                //here I am saving my double values
                                'income_in_usd' => $value['net_revenue'],
                                'exchange_rate' => $request->exchange_rate,
                                'income_in_bdt' =>  $value['net_revenue'] * $request->exchange_rate,
                                'content_id' => $content->id,
                            ]);

Я попытался изменить тип столбца таблицы на float и decimal. Но это не сработало. Может кто-нибудь найти проблему здесь? Заранее спасибо.

1 Ответ

0 голосов
/ 05 июля 2018

В Laravel:

ДВОЙНОЙ эквивалент с точностью, всего 10 цифр и 2 после десятичной точки.

Итак, измените файл миграции следующим образом:

$table->double('income_in_usd', 10, 5);
...