我有一个字段,我将我的总计存储为mysql,并将其类型设置为decimal(10,2)
当我的php表单加起来并更新112381348.40
的查询(即1.12亿)
但是当我在phpMyadmin上获取或查看它时,该值显示为99999999.99
来自我的数据类型集,它必须是10 digits
和2 decimals
,因为它最多更新为8
和2
。
我理解错误或我做错了什么。
我知道我可以将其增加到decimal(13,2)
,然后再看到它。
但我想知道原因,为什么10,2
没有发生?
答案 0 :(得分:4)
decimal(m, n)
的规范有两个参数。第一个是“精度”,第二个是“比例”。更通俗地说,第一个是数字中的位数。第二个是小数点右边的位数。
因此,您的decimal(10, 2)
规范可以存储如下数字:12,345,678.90 - 即最多99,999,999.99。这是最大数量。
如果要存储大于该数字的数字,请对数字使用更大的精度。对于您的号码,您至少需要decimal(11, 2)
,但我会建议更高的精度,以便您将来不会遇到此问题。
答案 1 :(得分:1)
在设置float或decimal字段时,第一个int值是总字符数。第二个是小数位数。所以:
//decimal(10,2)
12345678.90
//decimal(13,2)
12345678901.23
//decimal(7,3)
1234.567
请参阅?
答案 2 :(得分:0)
你有11位数字。第一个数字是总数字。尝试:
DECIMAL(11, 2)