我正在创建一个十进制字段,以便在Doctrine2中为我的Symfony2应用程序保存一个财务数字。
目前,它看起来如下:
/**
* @ORM\Column(type="decimal")
*/
protected $rate;
当我输入一个值并将值持久化到数据库时,它被舍入为整数。我猜我需要为这个领域设置精度和比例类型,但是我需要有人来解释他们到底在做什么?
精度:十进制(精确数字)列的精度(仅适用于十进制列) 小数位:十进制(精确数字)列的刻度(只适用于十进制列)。
但这并没有告诉我太多。
我猜精度是小数位数,所以我假设应该是2,但是什么是小数点呢?比例尺是重要数字吗?
我的实地申报应该是这样吗?
/**
* @ORM\Column(type="decimal", precision=2, scale=4)
*/
protected $rate;
发布于 2013-02-18 16:17:09
原则使用类似于SQL类型的类型。十进制恰好是一个固定的精度类型(不像浮点数)。
摘自MySQL文档
在十进制列声明中,可以(而且通常是)指定精度和标度;例如: 薪金小数(5,2) 在这个例子中,5是精度,2是刻度。精度表示为值存储的有效数字数,而刻度表示小数点之后可以存储的数字数。 标准SQL要求十进制(5,2)能够用五位数和两个小数存储任何值,因此可以存储在工资列中的值从-999.99到999.99不等。
发布于 2014-03-10 16:15:31
只需简单说明一下:我不得不从属性的精度和比例中删除引号,如下所示:
@ORM\Column(type="decimal", precision=8, scale=2)
发布于 2016-06-06 19:33:57
@Column(type="decimal", precision=5, scale=2) means 123.45
https://stackoverflow.com/questions/14940574
复制相似问题