Плавающая запятая, что правит миром

Нет числа мемам и шуткам про то, как в программировании 0,2 + 0,2 равно не 0,4, а 0,40000009... Все привыкли к подобным ограничениям, проистекающим из стандарта IEEE754. Но как мы к нему пришли, что из себя представляют FPU-модули для работы с плавающей запятой, как ARM-процессоры до недавнего времени обходились без них? Да и откуда вообще в математике возникла концепция плавающей запятой? Попробуем разобраться во всём этом, а заодно попробуем на практике в коде.