定点类型 - “精确值与否”?

时间:2013-11-18 19:38:21

标签: php mysql decimal numeric

我需要创建一个列,其中可以存储“0.0 - 99.99”的值。

为什么呢?因为这种情况:

我的数据库中有这个表:

"CREATE TABLE dumps(
                id INT NOT NULL auto_increment,
                dump_value NUMERIC(5,2),
                PRIMARY KEY(id),
                UNIQUE KEY dump_value (dump_value))";

当我插入值“1.0”时,我在我的表中得到这个:“1.00”,这是因为NUMERIC期望它正好是两位数的长期? 但是当我改变我的表格时:

"CREATE TABLE dumps(
                id INT NOT NULL auto_increment,
                dump_value NUMERIC(5,1), // <---- CHANGED
                PRIMARY KEY(id),
                UNIQUE KEY dump_value (dump_value))";

我有插入像“50.44”这样的值的问题,因为在我的表中只保存了“50.4”,我需要改变什么? 问候

2 个答案:

答案 0 :(得分:0)

为什么将“1.0”更改为“1.00”是一个问题。这不会改变计算中的某些内容,您仍然可以将值“00.00”存储到“99.99”。

答案 1 :(得分:0)

根据MySQL documentation for NUMERIC,您的定义应为

dump_value NUMERIC(4,2) UNSIGNED

这将定义总共四位数的列,小数点后两位。

在更改的示例中,您将dump_value定义为仅包含小数点后的一位数。