pgsql的money类型对应java什么数据类型?

本文讨论了在Java中使用BigDecimal处理金钱数据的优劣,以及Postgres中money和numeric字段的区别。建议在精度要求高时选择numeric,特别是在不涉及小数美分的场景下,使用表示美分的integer类型更为高效。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

BigDecimal是Java的正确数据类型,如果要记录金钱数据,pgsql最好不要用money字段,而是用numeric字段,因为money字段超过1000会有样式变化,类似于1,000
基本上,money有(非常有限的)用途。在Postgres的维基建议将在很大程度上避免它,除了那些狭义的案件。超过的优势numeric性能

decimal只是numericPostgres中的别名,并且广泛用于货币数据,是“任意精度”类型。手册

该类型numeric可以存储数量非常大的数字。特别建议在需要精确度的情况下存储货币金额和其他数量。

就个人而言,integer如果小数美分永远不会出现(通常在赚钱的地方),我喜欢将货币存储为代表美分的货币。这比任何其他提到的选项都更有效。

参考:
sql - Which datatype should be used for currency? - Stack Overflow

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值