1

到目前为止,我将如何计算复利:

 double principal = [[principalLabel text] doubleValue];
 NSLog(@"Principal: %lf",principal);
 double years = [[yearsLabel text] doubleValue];
 NSLog(@"Years: %lf",years);
 double months = [[monthsLabel text] doubleValue] / 12; 
 NSLog(@"Months: %lf",months);
 double days = ([[daysLabel text] doubleValue] / 365) / 10;
 NSLog(@"Days :%lf",days);
 double rate = ([[rateLabel text] doubleValue] / 100);
 NSLog(@"Rate: %lf",rate);
 double time = years + days + months;
 NSLog(@"Time: %lf",time);

 double total = pow(principal * (1 - rate), time);
 NSLog(@"Total: %lf",total);
 double interest = pow(principal * (1 - rate), time) - principal;
 NSLog(@"Interest: %lf",interest);
 NSString *interestString = [[NSString alloc] initWithFormat:@"%lf",interest];
 NSString *totalString = [[NSString alloc] initWithFormat:@"%lf",total];
 [interestLabel setText:interestString];
 [totalLabel setText:totalString];

如您所见,我有 5 个 UITextFields:本金、利率、年、月、日。目前,我不断得到一些与实际答案相去甚远的答案,尽管我的数学似乎正确,但我已经彻底检查了我的代码,但没有找到解决方案。

My desired result is: E.g.     
M = P * (1+R)^Y              
M = 1000 * (1+0.10)^2       
M = 1210
4

1 回答 1

2

如果您也将 NSLog 消息的输出放在您的问题中,那么回答您的问题会更有帮助。现在下面提到了一个明显的错误:

在这行代码中

double total = pow(principal * (1 - rate), time);

你有 1 利率,而你需要有

double total = pow(principal * (1 + rate), time);
于 2012-05-13T09:25:28.763 回答