应该使用哪种PostgreSQL列类型来存储Java BigDecimal?

问题描述 投票:16回答:2

我应该使用什么PostgreSQL列类型来存储Java BigDecimal?

java postgresql bigdecimal
2个回答
16
投票

请参阅PostgreSQL datatypes - 也许是Numeric,它可以作为任意精度类型(这是PostgreSQL扩展)。

...没有任何精度或比例创建一个列,其中可以存储任何精度和比例的数值,直到精度的实现限制。

但我并不完全确定“精度的实施限制”是什么。从未尝试过真正的大数字。如果达到限制,则可以回退到text。但是,我怀疑在此之前会有重大的其他问题;-)如果你想存储更少,那么指定numeric的精度和/或比例。

编辑为sjr指出,限制是1000个十进制数字的精度(来自同一个链接):

数字类型可以存储最多1000位精度的数字[在currentl实现中]并完全执行计算。特别建议在需要准确性的情况下存储货币金额和其他数量......

如果需要更高的精度 - 尽管手头有更大的问题 - 那么数字列将不适合(单独)。但这实际上更像是一种非常极端的“假设”,并且可能不起限制作用。


4
投票

只需将Java映射用于常见的SQL数据类型即可。在这种情况下,您可以使用NUMERIC或DECIMAL。

© www.soinside.com 2019 - 2024. All rights reserved.