如何在 symfony2 实体中设置小数精度和比例?我在我的实体中使用十进制数据类型在经度字段中定义了纬度,如下所示:
/**
* @ORM\Column(type="decimal", precision="10", scale="6", nullable=true)
*/
protected $latitude;
持久化新对象时,它会正确保存十进制(我可以在 phpMyAdmin 中看到 52.406374)。但是,当显示编辑表单时,数字会四舍五入为 52,406,更新后它会以52.406000的形式存储在 mysql 中。我的 Doctrine 配置可能有问题,但我不知道是什么。
为什么纬度和经度是四舍五入的?
找到了解决方案:
Symfony 的表单组件将十进制表单字段呈现为 type="text"。使用时:
->add('latitude', 'number', array(
'precision' => 6,
))
它被正确渲染。评论中的线程没有描述我的问题。我猜他们已经修复了“转换为浮点”精度的错误。当我在树枝模板中显示纬度时,它显示的是正确的(不是四舍五入的)值。