我意识到我们应该对所有货币值使用 BigDecimal
,但是以美元表示的股票价格呢?
我注意到来自主要供应商的数据馈送 API 使用 double
类型来表示股票报价。有谁知道为什么吗?
这是否意味着我的应用程序可以使用 double
类型来存储来自这些供应商的股票报价?
最佳答案
不对货币使用二进制 float 的原因是货币使用小数部分,而人们(和会计法规)期望从对其执行的算术运算中获得特定的小数行为——二进制 float 不提供。
但是,股票报价提要通常不用于会计。它们被显示、比较、用作各种图表分析指标或交易算法的输入——所有这些都比会计更接近科学应用,并且不需要小数行为或精度。相反,由于数据量很大,存储效率和性能是相关的,而 BigDecimal
在这些方面确实很糟糕。
关于java - 股票价格的 BigDecimal?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5285505/