РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
99 of 1392 menu

Поле double

Метод double используется для создания столбца с типом данных DOUBLE в базе данных. Этот тип предназначен для хранения чисел с плавающей точкой двойной точности, что позволяет хранить очень большие или очень маленькие значения с высокой точностью. Первым параметром передаётся имя колонки, вторым параметром можно указать длину и количество знаков после запятой в формате 'общая_длина, знаки_после_запятой'. Если параметры не указаны, используются значения по умолчанию для конкретной СУБД.

Синтаксис

<?php Schema::create('table_name', function (Blueprint $table) { $table->double('column_name', $total, $places); }); ?>

Пример

Давайте создадим таблицу products с полем price типа double:

<?php use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; return new class extends Migration { public function up(): void { Schema::create('products', function (Blueprint $table) { $table->id(); $table->string('name'); $table->double('price', 10, 2); $table->timestamps(); }); } public function down(): void { Schema::dropIfExists('products'); } }; ?>

В этом примере поле price будет хранить числа с общим количеством цифр 10, из которых 2 знака после запятой.

Пример

Давайте создадим таблицу measurements с полем value типа double без указания точности:

<?php use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; return new class extends Migration { public function up(): void { Schema::create('measurements', function (Blueprint $table) { $table->id(); $table->string('parameter'); $table->double('value'); $table->timestamps(); }); } public function down(): void { Schema::dropIfExists('measurements'); } }; ?>

В этом случае поле value будет использовать стандартную точность, установленную в СУБД.

Пример

Давайте создадим модель и вставим данные с полем double:

<?php namespace App\Models; use Illuminate\Database\Eloquent\Model; class Product extends Model { protected $fillable = ['name', 'price']; } ?>
<?php use App\Models\Product; use Illuminate\Support\Facades\Route; Route::get('/test', function () { $product = Product::create([ 'name' => 'Laptop', 'price' => 999.99 ]); echo $product->name . ': ' . $product->price; }); ?>

Результат выполнения кода:

"Laptop: 999.99"

Пример

Давайте рассмотрим пример с математическими операциями над полем double:

<?php use App\Models\Product; use Illuminate\Support\Facades\Route; Route::get('/calc', function () { $product = Product::find(1); $priceWithTax = $product->price * 1.2; echo $product->name . ' price with tax: ' . $priceWithTax; }); ?>

Результат выполнения кода:

"Laptop price with tax: 1199.988"

Обратите внимание, что при умножении чисел с плавающей точкой могут возникать погрешности.

Смотрите также

  • поле decimal,
    которое хранит числа с фиксированной точностью
  • поле float,
    которое хранит числа с плавающей точкой одинарной точности
  • поле integer,
    которое хранит целые числа
  • метод default,
    который задаёт значение по умолчанию для поля
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить