double c1=a1+b1,a1=11111110,b1=100000000;
float c2=a2+b2,a2=11111110,b2=100000000;
printf("double:a1+b1=c1=%f\n",c1);
printf("float: a2+b2=c2=%f\n",c2);
float и double
Код:
c1=111111110.
c2=111111112.
c1!=c2. Почему результат с2 такой и неверный? очевидно, конечно, что дело в типе данных
p.s. Ведь ведь a2,b2,c2 попадают в диапазон значений для float и фишка не в этом?
Почитай про работу с числами с плавающей точкой. Это особенность их представления в памяти и приведений к двоичному/десятичному виду.