Speaking of floats, I highly recommend John Gustafson's book, The End of Error: Unum Computing:
https://www.crcpress.com/The-End-of-Error-Unum-Computing/Gus...
It is an amazing compendium of the many ways in which floats fail to give any guarantees in practice. In some cases, due to the format itself, and also because many subtle issues are indicated via internal processor values and flags that are simply not accessible in high-level languages. In addition, the book presents Unums, an alternative number format with several extremely interesting properties that make computations much less error-prone.
Prof. Gustafson has since also presented several additional formats with much stronger guarantees than IEEE floats: