Jak iterować między 0.1f a 1.0f z przyrostami 0.1f w Javie? [duplikować]

Możliwy duplikat:
Java unosi się i podwaja, jak uniknąć tego, że 0.0 + 0.1 +… + 0.1 == 0.9000001?

Mam następujący problem w Javie - muszę iterować między 0.1f i ​​1.0f w przyrostach 0.1f, więc chciałbym, aby moje dane wyglądały tak:

    0.1
    0.2
    0.3
    0.4
    ...
    0.9

Zamiast tego, kiedy to robię:

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

dostaję

0.1
0.2
0.3
0.4
0.5
0.6
0.70000005
0.8000001
0.9000001

Wyobrażam sobie, że ma to związek ze sposobem, w jaki frakcje są reprezentowane przez komputer, ale chciałbym wiedzieć, dlaczego tak jest i czy jest coś, co mogę zrobić, aby to zatrzymać. dzięki.

questionAnswers(4)

yourAnswerToTheQuestion