Как перебрать между 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
Я предполагаю, что это как-то связано с тем, как фракции представлены компьютером, но я хотел бы знать, почему это так, и если есть что-то, что я могу сделать, чтобы остановить это. Благодарю.