0
함수를 벡터로 반환하려고합니다. 함수 내에서 각 루프가 끝날 때마다 1 씩 증가하는 int 카운터 (조미료)를 설정합니다. 함수를 디버깅 할 때 카운터가 초기화되지 않고 처음 29 가지 계산 (조미료 < 30)이 0 값으로 표시됩니다.함수에서 int 변수 초기화에 실패했습니다.
제 코드를 참조하십시오. seasoning
미만 30 때
vector<float>
RichardRollPrepayment::ComputingCPR(
float maturity,
float settledTime,
float frequencyPreYear,
float couponRate,
vector<float> mortgageRate
)
{
vector<float> cprVector(ceil((maturity-settledTime) * frequencyPreYear));
float seasonality[] = {
.94, .76, .73, .96, .98, .92, .99, 1.1, 1.18, 1.21, 1.23, .97
};
int seasoning = int(settledTime) * 12;
for (int i = 0; i < cprVector.size(); i++) {
if (seasoning < 30) {
cprVector[i] =
(.2406 - .1389 * atan(5.952*(1.089 - couponRate/mortgageRate[i])))
* (seasoning/30) * seasonality[seasoning%12];
seasoning++;
}
else {
cprVector[i] =
(.2406 - .1389 * atan(5.952*(1.089 - couponRate/mortgageRate[i])))
* 1 * seasonality[seasoning%12];
seasoning++;
}
}
return cprVector;
}
최적화 기능이 켜져 있습니까? – leppie
'settledTime'의 값은 무엇입니까? 이니셜 라이저 표현식에서'int'를 제거해보십시오.'int seasoning = settledTime * 12;' – CiaPan
당신의 참조는 무엇입니까? – TomHan