반복적으로 계산하는 가장 쉬운 1.0 +의 RoR된다.
double calculateRateOfReturnPlus1(double rate, int periods) {
if (periods == 0)
return 1.0;
return (1.0 + rate) * calculateRateOfReturnPlus1(rate, periods - 1);
}
이 반환 속도 = 0.1의 경우 1.21, 기간 = 2의 경우 1.331, 기간 = 0.1의 경우 1.331. 그런 다음 1.0을 빼서 순수 RoR을 얻을 수 있습니다. 또는, 다음과 같이 직접의 RoR을 계산할 수
double calculateRateOfReturn(double rate, int periods) {
if (periods == 0)
return 0.0;
return (1.0 + rate) * (calculateRateOfReturn(rate, periods - 1) + 1.0) - 1.0;
}
를 또한, 이와 같이 반복의 RoR을 계산할 수
double calculateRateOfReturn(double rate, int periods) {
double RoR = 1.0;
for (int i = 0; i < periods; i++) {
RoR = RoR * (1.0 + rate);
}
return RoR - 1.0;
}
마지막 두 함수는 율 = 0.1 내지 0.21을 돌려주기 = 2 및 0.331 rate = 0.1, periods = 3.
는 하나는 단순히
Math.Pow()
기능에 의존하는 것이 실제로
: 나는 스프레드 시트에서 유사한 "모델"을 한 적이
double calculateRateOfReturn(double rate, int periods) {
return Math.Pow(1.0+rate, periods) - 1.0;
}
왜 지속 기간 = 1,2,3, ...에 대한 RoR을 계산하지 않습니까? 재귀가 필요하지 않습니다. – svick