我代表金钱,可以有2位小数,所以我使用的列:小数精度在mysql数据库
'price' DECIMAL(2)
但之后读出位我所看到的东西,如:
'price' DECIMAL(6,2)
2的区别是什么?
我想要的是任何数字的数字,但将小数限制为2,是第一个正确的?
我代表金钱,可以有2位小数,所以我使用的列:小数精度在mysql数据库
'price' DECIMAL(2)
但之后读出位我所看到的东西,如:
'price' DECIMAL(6,2)
2的区别是什么?
我想要的是任何数字的数字,但将小数限制为2,是第一个正确的?
在标准SQL,语法DECIMAL(M)等价于DECIMAL(M,0)。同样,DECIMAL语法等价于DECIMAL(M,0),其中实现允许决定M的值.MySQL同时支持DECIMAL语法的这些变体形式。 M的默认值是10
'price' DECIMAL(6,2)
在这个例子中,6是精度和2是规模。精度表示为值存储的有效数字的数量,标度表示可以存储在小数点后面的数字的数量。
'price' DECIMAL(2)
如果刻度为0,DECIMAL值不包含小数点或小数部分。
换句话说:该字段可以有6位数,其中2必须在小数点后面。
换句话说:这个字段可以有'6'位其中'2'位将在小数点后面('0000.00' - '9999.99')。 – h2ooooooo
@ h2ooooooo先生更新了你的句子 –
用于DECIMAL列中的声明语法是DECIMAL(M,d)。 MySQL 5.1中参数的值范围如下:
M是最大位数(精度)。它的范围为1 至65.(旧版本的MySQL允许范围为1至254.)
D是小数点右边的数字位数( 比例)。它有30个的范围为0,并且必须是不大于M.
语法DECIMAL列是DECIMAL(M,d)其中,
L:数字
最大数d:小数点右边的位数。
参见:https://dev.mysql.com/doc/refman/5.1/en/precision-math-decimal-changes.html
https://dev.mysql.com/doc/refman/5.1/en/precision-math-decimal-changes.html –