Учение 2 - 2 знака после запятой на поплавке? - PullRequest
23 голосов
/ 04 сентября 2011

Примечание:

/**
 * @ORM\Column(type="float", scale="2")
 */
protected $curr_price;

Я использую его с Symfony 2.

И это поле становится двойным в базе данных MySQL вместо числа с плавающей запятой с точностью до 2 пунктов.

Что я делаю не так? Я пытался удалить БД, переустановить и т.д ...

Ответы [ 3 ]

32 голосов
/ 04 сентября 2011

Оба свойства precision и scale работают только с типом отображения decimal ( ссылка ).Я предлагаю вам использовать тип decimal.

Что касается того, почему он создает двойное поле вместо float, я не совсем уверен.Вероятно, это связано с совместимостью со всеми поддерживаемыми базами данных.Я не вижу упоминания о double типе отображения, поэтому я предполагаю, что они используют один и тот же тип для обоих.

10 голосов
/ 10 января 2013

в * .yml

curr_price:
    type: decimal
    precision: 10
    scale: 2
8 голосов
/ 19 апреля 2013
/**
 * @ORM\Column(type="float", scale=2)
 */
protected $curr_price;

Масштаб должен быть целым числом, и вы используете строку

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...