2015-08-30 1 views
0

Je suis nouveau sur Java et je suis en train de lire un livre sur ce sujet. Le livre ne me donne pas la réponse. Je suis en utilisant le code suivant:Java utilisant des arguments dans une formule complexe

package loanpayments; 

public class LoanPayments { 

    public static void main(String[] args) { 
     double years = Double.parseDouble(args[0]); 
     double P = Double.parseDouble(args[1]); 
     double r = Double.parseDouble(args[2]); 

     double R = r/100; 

     double A = P*(Math.E*Math.exp(R*years)); 

     System.out.println(A); 
    } 

} 

Je teste le code avec les valeurs suivantes:

  • ans = 3
  • P = 2340
  • r = 3,1

Je dois d'abord diviser r par 100 pour obtenir une valeur correcte (dans ce cas, il devient 0,031). La nouvelle valeur de 0,031 devient majuscule R. Ensuite, j'utilise la formule pour trouver A.

Je reçois une sortie incorrecte de ~ 6980.712, alors que la sortie devrait plutôt être ~ 2568.060.

Je pense que je mets dans la mauvaise formule, il devrait être ceci:

P e^R (années)

Dans ce cas e est le nombre d'Euler (~ 2,71828)

Si quelqu'un pouvait me conseiller sur la façon de réparer la formule, ou une autre erreur, j'apprécierais beaucoup, merci.

+0

En note: veuillez vous conformer aux conventions de codage Java. Les variables ne doivent jamais commencer par une lettre majuscule. Seuls les noms de type (classes, interfaces, énumérations) doivent commencer par une lettre majuscule. Donnez des noms significatifs variables comme 'ratePercents' et' rate', plutôt que 'r' et' R', et votre code sera beaucoup plus lisible. – RealSkeptic

Répondre

0

N'est pas nécessaire de multiplier avec un autre e car Math.exp() est déjà la fonction exponentielle.

+0

Je ne multiplie pas par un autre e, je ne pense pas. –

+0

Oh, si je divise par A par e, ça me donne la bonne réponse. Où je me multiplie par un autre e si? –

+0

@ J.Doe: - Au lieu de '(Math.E * Math.exp (R * ans)' essayer '(Math.exp (R * ans)' –