Por que os números de ponto flutuante são imprecisos?

Por que alguns números perdem a precisão quando armazenados como números de ponto flutuante?

Por exemplo, o número decimal9.2 pode ser expresso exatamente como uma razão de dois números decimais (92/10), os quais podem ser expressos exatamente em binário (0b1011100/0b1010) No entanto, a mesma proporção armazenada como um número de ponto flutuante nunca é exatamente igual a9.2:

32-bit "single precision" float: 9.19999980926513671875
64-bit "double precision" float: 9.199999999999999289457264239899814128875732421875

Como um número aparentemente simples pode ser "grande demais" para expressar64 bits de memória?

questionAnswers(4)

yourAnswerToTheQuestion