Неожиданные представления с плавающей точкой в Python

Здравствуйте, я использую словарь в Python, хранящий некоторые города и их население, как это:

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

Теперь, если я использую командуprint populationЯ получаю результат:

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

тогда как если я использую командуprint population['Shanghai'] Я получаю первоначальный вклад17.8.

Мой вопрос к вам, как17.8 и13.3 превратился в17.800000000000001 а также13.300000000000001 соответственно? Как создавалась вся эта информация? И почему он там хранится, поскольку мой первоначальный ввод означает, что мне не нужна эта дополнительная информация, по крайней мере, насколько я знаю.

Ответы на вопрос(3)

Ваш ответ на вопрос