I compute g with e and s, which are all doubles. After that, I want to disable all digits after the second and save the result in x, for example:
g = 2.123 => x = 2.12
g = 5.34995 => x = 5.34
etc. I use...
g = 0.5*e + 0.5*s;
x = floor(g*100)/100;
... and it works great in most cases. But sometimes I get strange results. For instance:
e = 3.0 s = 1.6 g = 2.30 but x = 2.29 !!!
So, I tried to track the error:
g = 0.5*e + 0.5*s;
NSLog(@"%f",g);
gives g = 2.30
g = g * 100;
NSLog(@"%f",g);
gives me g = 230.0
x = floor(g);
NSLog(@"%f",x);
leads to x = 229.0 !!!
I do not understand! Please help me!: -)
source
share