Nieoczekiwane reprezentacje zmiennoprzecinkowe w Pythonie

Witam Używam słownika w Pythonie przechowującego niektóre miasta i ich populację w ten sposób:

population = { 'Shanghai' : 17.8, 'Istanbul' : 13.3, 'Karachi' : 13.0, 'mumbai' : 12.5 }

Teraz, jeśli użyję poleceniaprint population, Mam wynik:

{'Karachi': 13.0, 'Shanghai': 17.800000000000001, 'Istanbul': 13.300000000000001, 'mumbai': 12.5}

podczas gdy używam poleceniaprint population['Shanghai'] Dostaję początkowy wkład17.8.

Moje pytanie do ciebie brzmi: jak działa17.8 i13.3 zmienił się w17.800000000000001 i13.300000000000001 odpowiednio? Jak powstały te wszystkie informacje? I dlaczego jest tam przechowywany, ponieważ moje początkowe dane oznaczają, że nie potrzebuję tych dodatkowych informacji, przynajmniej o ile wiem.

questionAnswers(3)

yourAnswerToTheQuestion