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

Я пытаюсь сохранить двойное значение в базе данных 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,
]);

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

1

Решение

В Ларавелле:

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

Поэтому измените ваш файл миграции следующим образом:

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

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector