我有oracle号码类型的数据库。使用数字列更新表时,使用java Double
是否存在任何问题?我应该切换BigDecimal
还是Double
是适当的类型。
正如我所知道的那样,BigDecimal
在需要任意精度时使用,例如在处理价格时。
考虑简单的API updatePrice(Double d)
我应该按原样保持双倍,还是BigDecimal.valueOf(d)
?
答案 0 :(得分:2)
如果要精确使用BigDecimal作为任意小数点。
但@Aprillion的评论是正确的:如果你进行包含双精度的Java计算,那么即使持久性数据类型是BigDecimal格式,你也会失去精度。
因此,如果要确保从/到该字段的正确小数精度,请使用BigDecimal。
我希望这有帮助!