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

Поле float

Поле float в Doctrine ORM предназначено для хранения чисел с плавающей точкой. Оно преобразует значение базы данных в PHP-тип float и обратно. Обычно используется для хранения величин, где важна дробная часть: координаты, проценты, рейтинги, научные расчёты. В отличие от decimal, поле float не гарантирует точность до последнего знака, но занимает меньше места и работает быстрее.

Синтаксис

#[ORM\Column(type: 'float', precision: precision, scale: scale, nullable: nullable)] private float $property;

Параметр precision задаёт общее количество цифр в числе, а scale - количество цифр после запятой. Параметр nullable разрешает или запрещает значение null.

Пример

Давайте создадим сущность Product с полем price типа float:

<?php namespace App\Entity; use Doctrine\ORM\Mapping as ORM; #[ORM\Entity] class Product { #[ORM\Id] #[ORM\GeneratedValue] #[ORM\Column(type: 'integer')] private int $id; #[ORM\Column(type: 'string', length: 255)] private string $name; #[ORM\Column(type: 'float', precision: 10, scale: 2)] private float $price; public function getId(): int { return $this->id; } public function getName(): string { return $this->name; } public function setName(string $name): void { $this->name = $name; } public function getPrice(): float { return $this->price; } public function setPrice(float $price): void { $this->price = $price; } } ?>

Теперь создадим контроллер, который сохранит товар с ценой и выведет её:

<?php namespace App\Controller; use App\Entity\Product; use Doctrine\ORM\EntityManagerInterface; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Attribute\Route; class ProductController extends AbstractController { #[Route('/product', name: 'product_create')] public function create(EntityManagerInterface $em): Response { $product = new Product(); $product->setName('article'); $product->setPrice(19.99); $em->persist($product); $em->flush(); return new Response((string) $product->getPrice()); } } ?>

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

"19.99"

Пример

Давайте найдём товар по id и выведем его цену с округлением:

<?php namespace App\Controller; use App\Entity\Product; use Doctrine\ORM\EntityManagerInterface; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Attribute\Route; class ProductController extends AbstractController { #[Route('/product/{id}', name: 'product_show')] public function show(int $id, EntityManagerInterface $em): Response { $product = $em->getRepository(Product::class)->find($id); $price = $product->getPrice(); $rounded = round($price, 1); return new Response((string) $rounded); } } ?>

Результат выполнения кода для товара с ценой 19.99:

"20"

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

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