2011-03-24 22 views
0

這是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

回答

0
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 

這樣做,感謝本傑明的幫助。

0

我不知道動作腳本,但我想你想:

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