Неожиданные представления с плавающей точкой в 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
соответственно? Как создавалась вся эта информация? И почему он там хранится, поскольку мой первоначальный ввод означает, что мне не нужна эта дополнительная информация, по крайней мере, насколько я знаю.