La urmatorul program:
#include <cstdio>
int main()
{
float a = (float)4.2;
float ca = a;
printf("a = %f\n",a);
printf("a * 10 = %f\n",a*10);
printf("a * 10 * 10 = %f\n",a*10*10);
printf("a * 100 = %f\n\n",a*100);
printf("a = %f\n",a);
printf("a *= 10\n");
a *= 10;
printf("a = %f\n\n",a);
printf("a *= 10\n");
a *= 10;
printf("a = %f\n\n",a);
printf("reset(a)\n");
a = ca;
printf("a = %f\n\n",a);
printf("a *= 100\n");
a *= 100;
printf("a = %f\n\n",a);
printf("reset(a)\n");
a = ca;
printf("a = %f\n\n",a);
printf("a *= 1000\n");
a *= 1000;
printf("a = %f\n\n",a);
return 0;
}
va da urmatoarea iesire?
a = 4.200000
a * 10 = 41.999998
a * 10 * 10 = 419.999981
a * 100 = 419.999981
a = 4.200000
a *= 10
a = 42.000000
a *= 10
a = 420.000000
reset(a)
a = 4.200000
a *= 100
a = 419.999969
reset(a)
a = 4.200000
a *= 1000
a = 4200.000000
Am observat ca pentru operatiile de expresii, tot scoate zecimale de 9 din nimic si nu muta virgula zecimala iar pt atribuiri functioneaza bine pt 10 si 1000 (dar pt 100 nu)...