c++中带有分和百分比的财务公式

Financial formulas with cents and percentages in C++

本文关键字:百分比 c++      更新时间:2023-10-16

我有一个小公式来应用于金钱数量,我在money对象上使用美分(将钱除以100),以确保浮动不会把事情搞砸。然而,我不确定如何使用百分比计算。例如,利率公式如下:$500 * 0,0048% * 5(500美元,按每天0,0048%计算,5天)

如何在计算过程中恰当地表示百分比?它一定是50000 * 0.000048 * 5吗?

理论上你应该计算利息除以利息,但是让我们暂时忽略这个。

你的利率是48/1000000。因此,日分利息为50000 * 48/1000000。浮动是不需要的,实际上最好避免使用。它们在这种情况下(少量)会起作用,但你很快就需要double

您需要使用定点算术计算您的操作。

当你说你在存储美分时,你实际上是在说你的数字都乘以了100——这是你没有存储的另一条信息。所以0.01美元表示为1/100。0048可以表示为48/10000,计算如下:

50000/100 * 48/10000 * 5 = 12000000/1000000 = 1200/100

,然后转换回分(重要:在每一步都必须检查溢出,丢失的位)以规范化为您首选的表示

请注意,这也是微控制器(无fpu,低性能)使用的典型方法

作为一种选择,如果你不太关心性能,你也可以使用任意精度算术库,如GMP。