summaryrefslogtreecommitdiffstats
path: root/mortgage_loan.c
diff options
context:
space:
mode:
Diffstat (limited to 'mortgage_loan.c')
-rw-r--r--mortgage_loan.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/mortgage_loan.c b/mortgage_loan.c
index 2959214..a9ab28b 100644
--- a/mortgage_loan.c
+++ b/mortgage_loan.c
@@ -1,6 +1,6 @@
#include "loans.h"
-contract *mort_init(int n, int d, float r, float P) {
+contract *mort_init(int n, int d, double r, double P) {
if ((n < 0)) return NULL;
if ((d >= n)||(d < 0)) return NULL;
contract *c = (contract *)calloc(1, sizeof(contract));
@@ -12,13 +12,13 @@ contract *mort_init(int n, int d, float r, float P) {
return c;
}
-float mort_update(contract *c) {
+double mort_update(contract *c) {
if (c->k > c->n)
- return 0.0f;
+ return 0.0;
if (c->k == c->d) {
- c->A = - (c->P * c->r * powf(1.0f + c->r, (float)(c->n - c->k)));
- c->A = c->A / (1.0f - powf(1.0f + c->r, (float)(c->n - c->k)));
+ c->A = - (c->P * c->r * pow(1.0 + c->r, (double)(c->n - c->k)));
+ c->A = c->A / (1.0 - pow(1.0 + c->r, (double)(c->n - c->k)));
}
c->k++;
c->I = c->r * c->P;