Floating-Point Finagling Never have I needed floating-point numbers for any program I've ever made; I've only recently worked on one which incidentally generates them, but it would've worked just fine using fixed-point numbers or rationals. I much more strongly feel that lack of saturation arithmetic, though it's hard to add in no way, which makes its absence stranger. Too heavy is the focus on those interfaces provided by hardware rather than those useful for other reasons, yet this leads primarily to illusory efficiency from ignoring the whole, or refusing to change other aspects of a system to the same goal. Software once informed hardware, suggesting common operations in need of promotion, and this is how floating- point numbers received their standardizations and hardware implementations. Despite their dearth of uses to me, every single programming language I've used provides floating-point numbers in some way. Signed, unsigned, and modular arithmetic are common, their hardware implementations common likewise. I figure Haskell to be a language which provides many kinds of numbers with many kinds of rules, but know not. Ada provides modular arithmetic with an arbitrary modulus, very uncommonly. The integers themselves have hardware implementations only from more primitive functions that manipulate symbols. I never understood why someone would need floating-point numbers until I remembered this funny joke:  A tour guide at a museum asks one of the present researchers how old is the subject of some exhibit, and he is informed that it's five million years old; while giving a tour seven years later, he tells the listening crowd of the exhibit's great age at five million and seven years old. .