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.