AS2:如何通过百分比计算迭代X次(包含循环引用)?

问题描述:

这是Excel /数学向导的问题。AS2:如何通过百分比计算迭代X次(包含循环引用)?

我很难做一个计算,它是基于一个循环引用的公式。计算已在Excel工作表中完成。

我扣除从Excel文件中的以下等式:

一个= 240000

B = 1400 + C + 850 + 2995

C = CEIL((A + B)* 0.015,100)

迭代后,A + B的总数应该是249045(其中b = 9045)。

在Excel文件中,这给出了一个循环引用,它被设置为允许迭代4次。

我的问题:在AS2重新计算,经历4次迭代。

我不够好,数学来解决这个问题。

任何人都可以帮我吗?

编辑:我已经改变了变量a中编号的格式。对不起,我来自DK,我们使用时段作为千位分隔符。我已经删除,以避免:-)

第二编辑困惑:第三个等式,C用擅长CEIL()函数将数字舍入到最近的百分位。

+0

你能否提供更多的细节,以你试图算得了什么?你怎么知道b的最终值是9045? – Benjamin 2011-03-24 17:06:08

function calcRegistrationTax(amount, iterations) { 

    function roundToWhole(n, to) { 

     if(n > 0) 
      return Math.ceil(n/ to) * to; 
     else if(n < 0) 
      return Math.floor(n/ to) * to; 
     else 
      return to; 
    } 

    var a = amount; 
    var b = 0; 
    var c = 0 
    for (var i = 0; i < iterations; i++){   
     b = basicCost + (c) + financeDeclaration + handlingFee;  
     c = (a + b) * basicFeeRatio; 
     c = roundToWhole(c, 100); 
    } 

    return b; 
} 

totalAmount = 240000 + calcRegistrationTax(240000, 4); // This gives 249045 

这样做,感谢本杰明的帮助。

我不知道动作脚本,但我想你想:

a = 240000 
c = 0 
for (i = 0; i < 4; i++){ 
    b = 1400 + c + 850 + 2995 
    c = (a + b) * 0.015 
} 

但你需要确定使用什么C的初始值。我假设Excel使用0,因为我得到相同的值,当我运行上述,因为我得到的Excel中迭代= 4,c = 3734.69 ...

你从哪里得到“A + B应该是249045“价值?在Excel和上面的AS中,b只有这些值才能达到8979。

+0

感谢您的帮助!我在我的问题有点unprecise。我已经编辑我原来的问题,以反映实际的问题和解决方案,我发现,这要归功于本杰明。 – carlskov 2011-03-30 10:42:29