Doctrine 2 - 2 decimal places on a float?

2019-04-18 02:20发布

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...

3条回答
女痞
2楼-- · 2019-04-18 02:39
/**
 * @ORM\Column(type="float", scale=2)
 */
protected $curr_price;

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

查看更多
爱情/是我丢掉的垃圾
3楼-- · 2019-04-18 02:45

in the *.yml

curr_price:
    type: decimal
    precision: 10
    scale: 2
查看更多
霸刀☆藐视天下
4楼-- · 2019-04-18 02:51

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.

查看更多
登录 后发表回答