Wynika to z tego, że sum nigdy nie będzie równy 1.0, a bliżej 0.(9). Wynika to ze sposobu zapisu liczb - zmienne są przechowywane w systemie binarnym, przez co tracą dokładność kiedy używamy ich do zapisu "naszych znanych" liczb.
Wypisz sobie w konsoli sum - 1, to zobaczysz coś ciekawego (zamień while na for i wykonaj 10 razy += 0.1)