gpt4 book ai didi

symfony - 编辑形式 Symfony2 + Doctrine2 中的四舍五入小数

转载 作者:行者123 更新时间:2023-12-02 14:08:08 26 4
gpt4 key购买 nike

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

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

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

为什么纬度和经度要四舍五入?

找到解决方案:

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

->add('latitude', 'number', array(
'precision' => 6,
))

它已正确呈现。评论中的线程没有描述我的问题。我想他们已经修复了“转换为 float ”精度的错误。当我在 Twig 模板中显示纬度时,它显示了正确的(不是四舍五入的)值。

最佳答案

如何设置symfony小数类型精度和小数位数:

将其设置在您的实体中,如下所示:

protected $mycolumn;
/**
* @ORM\Column(type="decimal", precision=14, scale=8, nullable=true)
*/

这设置了 MySQL 数据库中的数据类型:

mycolumn decimal(14,8)

What do scale and precision mean when specifying a decimal field type in Doctrine 2?

关于symfony - 编辑形式 Symfony2 + Doctrine2 中的四舍五入小数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10979090/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com