Здесь есть два вопроса.Если вы спрашиваете, почему мой оператор printf отображает результат как 6.59e-07
вместо 0.000000659
, это потому, что вы использовали спецификатор формата для научной нотации: %e
.Вы хотите %f
для плавающей запятой a
.
printf("%f\n",a);
Если вы спрашиваете, почему результат не точно равен нулю, а не 0.000000659
, ответ будет (как отмечали другие)что при использовании арифметики с плавающей запятой с использованием двоичных чисел необходимо ожидать округления.