Representações inesperadas de ponto flutuante em Python
Olá estou usando um dicionário em Python armazenando algumas cidades e sua população assim:
population = { 'Shanghai' : 17.8, 'Istanbul' : 13.3, 'Karachi' : 13.0, 'mumbai' : 12.5 }
Agora, se eu usar o comandoprint population
, Eu obtenho o resultado:
{'Karachi': 13.0, 'Shanghai': 17.800000000000001, 'Istanbul': 13.300000000000001, 'mumbai': 12.5}
Considerando que, se eu usar o comandoprint population['Shanghai']
Eu recebo a entrada inicial de17.8
.
Minha pergunta para você é como o17.8
e a13.3
se tornou17.800000000000001
e13.300000000000001
respectivamente? Como toda essa informação foi produzida? E por que é armazenado lá, desde que minha entrada inicial denota que eu não preciso daquela informação extra, pelo menos tanto quanto eu sei.