# Matlab returns wrong result

11 views (last 30 days)
enlightenight on 11 Oct 2016
Commented: enlightenight on 12 Oct 2016
I am trying to calculate an annual return based on the given formula for a homework. I typed this code:
function A = untitled9(R, m, p)
k = ((1+p)^(m-1))*p
h = ((1+p)^m)-1
g = k/h
A = g.*R
s=sprintf('The annual installment for Katja is %.2f', A);
disp(s)
for the values R=75000, m=10 and p=0.04; the result should be 8887.5. but matlab insists on returning 8891.17, even though it calculates k, h and g right. (i purposefully coded it that way so I could see if I did something wrong in the initial formula.)
edit: it returns the same answer when i manually enter 75000 as the number to multiply g value by.

Preethi on 12 Oct 2016
Edited: Preethi on 12 Oct 2016
Hi,
the value displayed by Matlab is precise value since it uses g value as 0.118549. if you want 8887.5 then truncate the value of g to 0.1185. (I used a crude method)
g1 = str2num(sprintf('%.4f',g))
A = (g1.*R)
when you are displaying in command window it shows 4 characters after decimal(I think its standard method), hence the confusion.
enlightenight on 12 Oct 2016
oh my god thanks a lot! i spent an embarrassing amount of time on it, trying to figure out where i did a mistake. seriously, you saved my mind before my exam!