Как перебрать между 0.1f и 1.0f с шагом 0.1f в Java? [Дубликат]

Возможный дубликат:

Java плавает и удваивается, как избежать этого 0.0 + 0.1 + ... + 0,1 == 0,9000001?

У меня возникла следующая проблема в Java - мне нужно перебирать между 0,1f и 1,0f с шагом 0,1f, поэтому я хотел бы, чтобы мой вывод выглядел так:

    0.1
    0.2
    0.3
    0.4
    ...
    0.9

Вместо этого, когда я делаю:

for(float i = 0.1f; i < 1f; i += 0.1f)
    System.out.println(i);

я получил

0.1
0.2
0.3
0.4
0.5
0.6
0.70000005
0.8000001
0.9000001

Я предполагаю, что это как-то связано с тем, как фракции представлены компьютером, но я хотел бы знать, почему это так, и если есть что-то, что я могу сделать, чтобы остановить это. Благодарю.

Ответы на вопрос(4)

Ваш ответ на вопрос