gpt4 book ai didi

database - 在 Doctrine 2 中指定 decimal 字段类型时,scale 和 precision 意味着什么?

转载 作者:太空狗 更新时间:2023-10-30 01:37:42 27 4
gpt4 key购买 nike

我正在为我的 Symfony2 应用程序创建一个小数字段来保存 Doctrine2 中的财务数字。

目前,它看起来像这样:

/**
* @ORM\Column(type="decimal")
*/
protected $rate;

当我输入一个值并说该值被保存到数据库中时,它被四舍五入为一个整数。我猜想我需要为该字段设置精度和比例类型,但我需要有人准确解释它们的作用?

Doctrine2 documentation说:

precision: The precision for a decimal (exact numeric) column (Applies only for decimal column)

scale: The scale for a decimal (exact numeric) column (Applies only for decimal column)

但这并不能告诉我很多。

我猜精度是要四舍五入的小数位数,所以我假设它应该是 2,但什么是小数位数?规模是有效数字吗?

我的字段声明应该是这样的吗? :-

/**
* @ORM\Column(type="decimal", precision=2, scale=4)
*/
protected $rate;

最佳答案

Doctrine 使用类似于 SQL 类型的类型。小数恰好是固定精度类型(与 float 不同)。

取自MySQL documentation :

In a DECIMAL column declaration, the precision and scale can be (and usually is) specified; for example:

salary DECIMAL(5,2)

In this example, 5 is the precision and 2 is the scale. The precision represents the number of significant digits that are stored for values, and the scale represents the number of digits that can be stored following the decimal point.

Standard SQL requires that DECIMAL(5,2) be able to store any value with five digits and two decimals, so values that can be stored in the salary column range from -999.99 to 999.99.

关于database - 在 Doctrine 2 中指定 decimal 字段类型时,scale 和 precision 意味着什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14940574/

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