gpt4 book ai didi

java - 如果不进行货币金额的计算,是否需要使用 BigDecimal?

转载 作者:行者123 更新时间:2023-11-30 02:13:50 25 4
gpt4 key购买 nike

我有一个 Java 程序,它从数据库读取数据,并将其显示在用户界面上。其中一种数据类型是金额 - 因此它会自动触发我使用 BigDecimal 作为 explained here 。但是就我而言,除了

之外,我不会对该字段执行任何操作
  1. 将其呈现在 UI 上。
  2. 给它另一个应用程序(通过http),该应用程序可以将其写入另一个数据库。

考虑到数据库中的数据是类似于 double 的类型,我认为将 double 据库字段转换为 BigDecimal 没有任何优势,因为无论如何它都会转换为字符串(无论是对于 UI,还是对于对于网络服务)。

我错过了什么吗?

最佳答案

没有要求使用 BigDecimal 来表示货币值,但是您必须确保精确存储金额,而不会出现 float 中通常遇到的任何舍入或精度问题>double 数据类型。

有几种方法可以实现这一目标:

  1. Java 9 附带 JSR 354:货币和货币 API 类,例如货币金额
  2. 使用最小的有意义的货币单位(例如,将金额存储为long)对于美元来说,是分。请注意,因为某些货币不使用小数单位,例如日元。
  3. 提到了BigDecimal
  4. 如果不需要您进行任何处理,请将金额存储为 String。这是一种丑陋的方法,但如果你只是传递数量,它可能会这样做,例如从 XML 读取并使用 REST API 公开。

关于java - 如果不进行货币金额的计算,是否需要使用 BigDecimal?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49239800/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com