我有一个代表金钱的专栏,可以有两位小数,所以我用过:
'price' DECIMAL(2)
但是在看了一下后我看到了类似的东西:
'price' DECIMAL(6,2)
2之间有什么区别?
我想拥有的是任意数量的数字,但是将小数位数限制为2,是第一个正确吗?
答案 0 :(得分:3)
在标准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位必须位于小数点后面。
答案 1 :(得分:1)
DECIMAL列的声明语法是DECIMAL(M,D)。该 MySQL 5.1中参数的值范围如下:
M是最大位数(精度)。它的范围是1 (较早版本的MySQL允许范围为1到254.)
D是小数点右边的位数( 规模)。它的范围为0到30,且不得大于M.
答案 2 :(得分:1)
DECIMAL列的语法是DECIMAL(M,D),其中
M:最大位数
D:小数点右边的位数。
参考:https://dev.mysql.com/doc/refman/5.1/en/precision-math-decimal-changes.html