Postgres中十进制和​​数字有什么区别?

时间:2016-06-04 20:41:49

标签: postgresql

我正在更改数据库中的列" money"到"数字"根据之前的一些建议。

查看postgres中的数据类型 - https://www.postgresql.org/docs/current/static/datatype-numeric.html - 我无法在说明中看到数字和小数之间的任何差异。

十进制和数字有什么区别,有什么理由我应该在数据库中使用数字而不是十进制数字?

1 个答案:

答案 0 :(得分:4)

根据手册,它们是相同的。

  

十进制和数字类型是等效的。这两种类型都属于   SQL标准。

https://www.postgresql.org/docs/current/static/datatype-numeric.html

不同之处在于SQL标准允许不同的行为:

NUMERIC必须与定义的一样精确 - 所以如果你定义4个小数位,那么DB必须总是存储4个小数位。

DECIMAL必须至少与定义的一样精确。这意味着数据库实际上可以存储比指定的更多的数字(由于幕后存储具有额外数​​字的空间)。这意味着数据库可能存储1.00005而不是1.0000,这会影响将来的计算。

Difference between DECIMAL and NUMERIC