2017-11-12 4 views
-2

$ 2500로 시작하여 7.5 %이자로 시작할 경우 $ 5000에 도달하는 데 걸리는 시간을 계산하는 것이 나의 임무입니다. 계산은 10 년이어야하지만 11 년을 출력합니다. 이것은 간단한 구문 에러 일지 모르지만 나는 지난 2 시간 동안 이것을 행운으로 고치려고 노력해 왔습니다.자바 복리 계산

final double principle = 2500.00; 
double accrued = 0; 
final double interest = 0.075; 
int year = 0; 
double interest1 = 1.0 + interest; 
while (accrued < 5000.00) 
{ 
    accrued = principle * Math.pow(interest1, year); 
    year++; 
} 
System.out.printf("It would take %d years to reach at least $5000 if you start with $2,500 with 7.5%% compound interest.", year); 
+0

당신은 이런 이유를 몇 가지 단계별 디버깅을해야한다. –

+1

계산을 수행 한 후 연도가 증가하고 계산 전에 증분을 이동하십시오. – pstrjds

+0

@pstrjds 고칠 줄 알았다. 고마워. –

답변

0

이 시도 :

final double principle = 2500.00; 
double accrued = 0; 
final double interest = 0.075; 
int year = 0; 
double interest1 = 1.0 + interest; 
while (accrued < 5000.00) 
{ 
    year++; 
    accrued = principle * Math.pow(interest1, year); 
} 
System.out.printf("It would take %d years to reach at least $5000 if you start with $2,500 with 7.5%% compound interest.", year); 
+0

왜 'year ++'에서 변경 했습니까? 당신이 보여준 것이 문제를 해결해야만하는 이유가 무엇인지 설명했다면 대답으로 더 유용 할 것입니다. – pstrjds

+0

논리에서 단순한 실수 만있었습니다. 우리는 먼저 올해를 증가시켜야합니다. while 조건으로 인해 복합 값을 할당하십시오. 그리고 예 년 = 올해 +1 내 IDE에서 디버깅을했다 :). year ++가 훨씬 낫다. –

+0

맞다. 그냥 간단한 실수 일 뿐이지 만, 설명없이 코드를 덤프했다. 적어도 이것이 왜 당신의 대답에 도움이 될지/대답이 될 수있는 지에 대한 최소한의 설명을 추가하는 것이 가장 좋습니다. – pstrjds