2010-01-08 7 views
0

Je veux calculer le NPV (Net Present Value) en utilisant PHP.Comment calculer NPV

Voici le détail que j'ai.

 
    discount rate : 15% 

    Cash Flow Values per Year: 

    Year 1: 110000 
    Year 2: 122000 
    Year 3: 135200 
    Year 4: 149720 
    Year 5: 157706 
    Year 6: 166091 

NPV Formule que j'utilise.

NPV = sum of all years((Ci)/(1+r)^i) 

i=1,2,3,4,5,... 
Ci= Cash Flow for year i 
r=rate of discount 

Toute aide.

Merci à l'avance

Avinash

+0

Et la question est? –

+2

Montrez-nous le code que vous avez écrit et expliquez-lui comment cela ne fonctionne pas. – Lazarus

+1

Eh bien, cela semble un calcul simple. Faites des choses comme $ resultat = $ a + $ b/$ c, etc. Pouvez-vous être plus précis? Qu'avez-vous essayé de faire jusqu'ici et spécifiquement quel problème avez-vous rencontré? Notez également que si vous posez des questions sur la formule VAN (et non comment faire des calculs en PHP), vous êtes hors sujet ici. –

Répondre

2

Vous calculer la VAN de chaque année selon la formule suivante: (valeur)/((1 + 0,15)^(année)) puis additionnez tous les résultats pour obtenir votre VPN final - où^signifie à la puissance de.

Donc pour l'année deux ce serait: 122000/((1.15)^2).

Au point courant dans le temps la puissance^valeur serait 0

+0

Oui que je fais, mais ne pas obtenir la bonne réponse. Ma réponse est 416971.03 .. – Avinash

+0

Pouvez-vous modifier votre message original pour inclure le code - semble qu'il y a un problème dans l'algorithme - quelle valeur calculez-vous pour l'entrée de l'année 1? - Il est également possible qu'un problème d'arrondi se produise dans le calcul. – saret

+0

Je n'ai pas encore créé de code pour cela, je ne fais que le tester sur papier pour l'instant. Je prends 0 comme valeur de première année. Sera-ce un problème? – Avinash

0

Ceci est tiré du travail accompli par TommySzalapski ici: https://www.experts-exchange.com/questions/26875482/Finding-NPV-net-present-value-with-PHP.html

La meilleure façon de le faire est d'abord créer un tableau de vos flux de trésorerie. Rappelez-vous que les tableaux commencent à 0, donc s'il n'y a pas de flux de trésorerie à l'année 0 alors [0] = 0. S'il y a un retrait, faites ce négatif.

$cf = array(0, 110000, 122000, 135200, 149720, 157706, 166091); 

Ensuite, créez des variables pour vos entrées:

$years = 6; 
$discountRate = 0.15; 

Ensuite, vous pouvez utiliser la formule TommySzalapski

function npv($rate, $values, $year) { 
    for ($i=$year;$i>=0;$i-=1) { 
     $npv = ($values[$i] + $npv)/(1 + $rate); 
    } 
    return '$'.number_format($npv,2,'.',' '); 
} 

si plugin:

$NPV = npv($discountRate, $cf, 6); // You can also use the $years variable here 

echo $NPV; 

réponse est 445 751,54 $, ce qui est le sa moi comme la formule NPV donne dans Excel.