Значение в y
начинается с 1E10 (из присвоения a
).Вы добавляете к этому миллион раз 3.
Проблема в том, что float
имеет не более 7 значащих десятичных цифр, поэтому вы фактически не меняете y
каждый раз, следовательно, результат, деленный на 10000, равен 10 000 000 1 000 000, как показано.
Если вы закодируете его с помощью double
, вы увидите более близкий результат, который вы ожидаете.