编辑形式为Symfony2 + Doctrine2的圆形小数

Woj*_*ski 6 decimal symfony doctrine-orm

如何在symfony2实体中设置小数精度和小数位?我在我的实体中使用十进制数据类型在经度字段中定义了纬度,如下所示:

/**
 * @ORM\Column(type="decimal", precision="10", scale="6", nullable=true)
 */
protected $latitude;
Run Code Online (Sandbox Code Playgroud)

当持久化新对象时,它正确地保存十进制(我可以在phpMyAdmin中看到52.406374).但是,当显示编辑表单时,数字将四舍五入为52,406,更新后将其存储在mysql中,如52.406000.我的Doctrine配置可能有问题,但我不知道是什么.

为什么纬度和经度会变圆?

找到了解决方案:

Symfony的Form组件将十进制表单字段呈现为type ="text".使用时:

->add('latitude', 'number', array(
    'precision' => 6,
))
Run Code Online (Sandbox Code Playgroud)

它渲染得很好.评论中的帖子没有描述我的问题.我猜他们已经修复了'转换为浮点'精度的错误.当我在树枝模板中显示纬度时,它显示正确的(非圆形)值.

小智 3

也许问题不是由于你的学说映射造成的。查看NumberType的参考文档。

你用的是啥?您可能必须更改精度。