Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 存储利率和复利计算总和的数据类型是什么?_Python_Decimal_Floating Accuracy_Currency Formatting - Fatal编程技术网

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你说得对。在我所做的示例计算中,结果是相同的数量,并且误差不足以显示出来。但是,您认为(更新的)问题中描述的“每年”到十进制的转换是一种良好的最佳实践吗?或者十进制转换应该只在“存储”数据时进行吗?我认为还需要将浮点舍入到操作集中,这与使用小数不同。对于更严格的“平衡”操作,您更愿意使用小数,小数加起来应该更严格。要计算复合汇率,您可以对浮动和循环执行操作。我认为舍入(去掉不重要的整数)和十进制表示(克服二进制表示格式)之间有着重要的区别。