十进制的数据字段类型不能按要求工作

时间:2013-08-29 22:58:57

标签: php mysql

我有一个字段,我将我的总计存储为mysql,并将其类型设置为decimal(10,2)

当我的php表单加起来并更新112381348.40的查询(即1.12亿)

但是当我在phpMyadmin上获取或查看它时,该值显示为99999999.99

来自我的数据类型集,它必须是10 digits2 decimals,因为它最多更新为82

我理解错误或我做错了什么。

我知道我可以将其增加到decimal(13,2),然后再看到它。

但我想知道原因,为什么10,2没有发生?

3 个答案:

答案 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)