Python 存储利率和复利计算总和的数据类型是什么?
我使用Python 存储利率和复利计算总和的数据类型是什么?,python,decimal,floating-accuracy,currency-formatting,Python,Decimal,Floating Accuracy,Currency Formatting,我使用十进制表示货币金额。然而,我想知道将利率放在什么数据类型中 如果我将其设置为float,我将货币金额(Decimal)乘以float,结果是“不精确”Decimal。如果我将其设置为Decimal,一旦出现复利,我就会遇到问题,一旦超过Decimal上下文的精度,最终也会得到不精确的金额 我试图找到有关如何节省利率的信息,并看到了一些使用浮动的示例,并假设这是常见的做法 这是否意味着我应该使用浮动进行利息计算,并在每个财政年度结束时将任何金额转换为精度为“0.01”的十进制(然后使用返回值
十进制
表示货币金额。然而,我想知道将利率放在什么数据类型中
如果我将其设置为float
,我将货币金额(Decimal
)乘以float
,结果是“不精确”Decimal
。如果我将其设置为Decimal
,一旦出现复利,我就会遇到问题,一旦超过Decimal
上下文的精度,最终也会得到不精确的金额
我试图找到有关如何节省利率的信息,并看到了一些使用浮动的示例,并假设这是常见的做法
这是否意味着我应该使用浮动
进行利息计算,并在每个财政年度结束时将任何金额转换为精度为“0.01”的十进制
(然后使用返回值作为下一年度的起始值)?这是正确的编码方式吗?是什么让您认为这些错误正在累积float
在这种计算中不应失去任何精度。你能举个例子说明你是如何评估精度误差的吗?@Evgeny你说得对。在我所做的示例计算中,结果是相同的数量,并且误差不足以显示出来。但是,您认为(更新的)问题中描述的“每年”到十进制的转换是一种良好的最佳实践吗?或者十进制转换应该只在“存储”数据时进行吗?我认为还需要将浮点舍入到操作集中,这与使用小数不同。对于更严格的“平衡”操作,您更愿意使用小数,小数加起来应该更严格。要计算复合汇率,您可以对浮动和循环执行操作。我认为舍入(去掉不重要的整数)和十进制表示(克服二进制表示格式)之间有着重要的区别。