我正在更改数据库中的列" money"到"数字"根据之前的一些建议。
查看postgres中的数据类型 - https://www.postgresql.org/docs/current/static/datatype-numeric.html - 我无法在说明中看到数字和小数之间的任何差异。
十进制和数字有什么区别,有什么理由我应该在数据库中使用数字而不是十进制数字?
答案 0 :(得分:4)
根据手册,它们是相同的。
十进制和数字类型是等效的。这两种类型都属于 SQL标准。
https://www.postgresql.org/docs/current/static/datatype-numeric.html
不同之处在于SQL标准允许不同的行为:
NUMERIC必须与定义的一样精确 - 所以如果你定义4个小数位,那么DB必须总是存储4个小数位。
DECIMAL必须至少与定义的一样精确。这意味着数据库实际上可以存储比指定的更多的数字(由于幕后存储具有额外数字的空间)。这意味着数据库可能存储1.00005而不是1.0000,这会影响将来的计算。