我有一个Java程序,它从数据库中读取数据,并在用户界面上显示。其中一种数据类型是金额 - 因此它会自动触发我将BigDecimal用作explained here。但是在我的情况下,除了
之外我不会对这个领域做任何事情考虑到数据库中的数据类似于double的类型,我没有看到将双精度数据库字段转换为BigDecimal的任何优势,因为它无论如何都会转换为字符串(对于UI而言) ,或用于网络服务。)
我错过了什么吗?
答案 0 :(得分:2)
不要求BigDecimal
用于货币值,但是您必须确保精确存储金额,而不会在float
或double
数据类型中遇到任何舍入或精度问题。
实现这一目标的方法很少:
MonetaryAmount
。long
,例如美元是分。请注意,因为某些货币不使用分数单位,例如YEN。BigDecimal
。String
。这是一个丑陋的方法,但如果你只是传递它周围的数量可能会,例如从XML读取并使用REST API公开。