我试图在我的数据库中存储价格。我已将列设置为DECIMAL(2,2)并尝试插入2.10。当我运行insert语句时,我得到2个警告:
"数据在第1行和第34行的列价格被截断; 和 "超出第1行"
列价格的范围值有人对可能导致警告的内容有任何想法吗?
由于
答案 0 :(得分:1)
如果您要存储最多DECIMAL(4,2)
,则需要99.99
。
第一部分是数字是最大总位数,通常称为"显着性"数量。第二部分是小数点后的位数,通常称为" precision"。因此,4位总数位,小数点右侧2位的最大值为99.99
补充工具栏:你几乎应该总是比这更重要。一个好的标准是DECIMAL(13,2)
,它允许您存储金额高达99,999,999,999.99美元,或者仅低于一千亿美元。
答案 1 :(得分:1)
你应该在mysql中读取十进制类型。在MySQL中DECIMAL(2,2)
表示最多两位数,小数点分隔符右侧有两位数。这基本上意味着你的所有数字都在点的右边。
如果你想要两个带有两个小数点的数字,你应该使用DECIMAL(4,2)
,这意味着总共有四位数,其中两位是小数点分隔符的右边。
答案 2 :(得分:0)
格式为DECIMAL(M,D)
,其中M
是列的最大位数,D
是小数位数,因此10.5将为DECIMAL(3,1)例如。您可能需要DECIMAL(4,2)作为列规范