BigDecimal 导致 POS 程序出现内存问题的可能性有多大?
How likely is BigDecimal to cause memory issues for a POS program?
我知道 BigDecimal 是表示货币的最准确方法,因为将货币值视为浮点数据类型往往会导致舍入错误。但是,我也明白 BigDecimal 计算需要更多内存。也就是说,使用 BigDecimal 而不是 float 或 double 真的是处理货币值的程序的最佳实践吗?如果我制作一个程序,打印出餐厅每份订单的明细收据,如果我使用 BigDecimal,我是否更有可能 运行 内存不足,或者如果我使用浮点值,我是否更有可能出现舍入错误?
(注:"What to do with Java BigDecimal performance?"是一个稍微类似的问题,但我更关心相对简单的快餐交易风险最小的选择。)
除非您的程序一次处理数百万个 BigDecimal,否则您不会真正注意到内存消耗的差异。
而且,如果您运行 提供具有如此吞吐量的服务,您肯定有能力购买额外的 GB 内存,而不是 运行 因计算不正确而陷入诉讼 ;-)。 =10=]
我知道 BigDecimal 是表示货币的最准确方法,因为将货币值视为浮点数据类型往往会导致舍入错误。但是,我也明白 BigDecimal 计算需要更多内存。也就是说,使用 BigDecimal 而不是 float 或 double 真的是处理货币值的程序的最佳实践吗?如果我制作一个程序,打印出餐厅每份订单的明细收据,如果我使用 BigDecimal,我是否更有可能 运行 内存不足,或者如果我使用浮点值,我是否更有可能出现舍入错误?
(注:"What to do with Java BigDecimal performance?"是一个稍微类似的问题,但我更关心相对简单的快餐交易风险最小的选择。)
除非您的程序一次处理数百万个 BigDecimal,否则您不会真正注意到内存消耗的差异。
而且,如果您运行 提供具有如此吞吐量的服务,您肯定有能力购买额外的 GB 内存,而不是 运行 因计算不正确而陷入诉讼 ;-)。 =10=]