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

Поле decimal

Поле decimal создаёт колонку для хранения чисел с фиксированной точностью. Такое поле идеально подходит для денежных сумм, где важна точность вычислений. Первым параметром передаётся имя поля, вторым - массив параметров, среди которых precision задаёт общее количество цифр, а scale - количество цифр после запятой.

Синтаксис

#[ORMColumn(type: 'decimal', precision: precision, scale: scale)]

Пример

Давайте создадим сущность с полем price, которое хранит денежную сумму с точностью 10 цифр и 2 знаками после запятой:

<?php namespace AppEntity; use DoctrineORMMapping as ORM; #[ORMEntity] class Product { #[ORMId] #[ORMGeneratedValue] #[ORMColumn(type: 'integer')] private int $id; #[ORMColumn(type: 'decimal', precision: 10, scale: 2)] private string $price; public function getId(): int { return $this->id; } public function getPrice(): string { return $this->price; } public function setPrice(string $price): void { $this->price = $price; } } ?>

В базе данных будет создана колонка типа DECIMAL(10, 2), которая может хранить значения от -99999999.99 до 99999999.99.

Пример

Давайте запишем значение в поле price и выведем его:

<?php namespace AppController; use AppEntityProduct; use DoctrineORMEntityManagerInterface; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationResponse; use SymfonyComponentRoutingAttributeRoute; class ProductController extends AbstractController { #[Route('/product', name: 'product_create')] public function create(EntityManagerInterface $em): Response { $product = new Product(); $product->setPrice('123.45'); $em->persist($product); $em->flush(); return new Response($product->getPrice()); } } ?>

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

"123.45"

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

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