/**
* @ORM\Column(type="float", scale="2")
*/
protected $curr_price;
我使用它的Symfony 2
而且这个领域变成一个双在MySQL数据库,而不是2点精度浮点数。
我在做什么错?我试图删除数据库,重新插入等...
/**
* @ORM\Column(type="float", scale="2")
*/
protected $curr_price;
我使用它的Symfony 2
而且这个领域变成一个双在MySQL数据库,而不是2点精度浮点数。
我在做什么错?我试图删除数据库,重新插入等...
都precision
和scale
属性只能使用decimal
映射类型(link)。我建议你使用decimal
类型。
至于为什么它创建一个双字段而不是float字段,我不完全确定。它可能与兼容所有支持的数据库有关。我没有看到double
映射类型,所以我认为它们都使用相同的类型。
.yml
curr_price:
type: decimal
precision: 10
scale: 2
/**
* @ORM\Column(type="float", scale=2)
*/
protected $curr_price;
规模应该是一个整数,您使用的是串
根据[文档](http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/reference/basic-mapping.html#property-mapping): * scale :(可选,默认值0)十进制(精确数字)列的比例(**仅适用于十进制列**),它表示小数点右侧的位数,且不得大于精度。* –
为浮动点(通常虽然不是与你的问题,存储价格)一个非常糟糕的做法。 – Martijn
请详细说明。 – Tool
请参阅http://stackoverflow.com/questions/1165761/decimal-vs-double-which-one-should-i-use-and-when。 – Martijn