Tool
Tool

Reputation: 12488

Doctrine 2 - 2 decimal places on a float?

Annotation:

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

I'm using it with Symfony 2.

And this field becomes a double in MySQL database instead of float with 2 point precision.

What am I doing wrong? I tried deleting the DB, reinserting etc...

Upvotes: 28

Views: 53992

Answers (3)

kgilden
kgilden

Reputation: 10356

Both precision and scale properties work only with the decimal mapping type (link). I suggest you use the decimal type.

As to why it's creating a double field instead of float, I'm not entirely sure. It probably has to do with being compatible with all supported databases. I see no mention of double mapping type so I assume they use the same type for both.

Upvotes: 37

juan
juan

Reputation: 365

in the *.yml

curr_price:
    type: decimal
    precision: 10
    scale: 2

Upvotes: 12

Serhii Polishchuk
Serhii Polishchuk

Reputation: 1508

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

scale should be an integer, and you are using a string

Upvotes: 10

Related Questions