The ability of a machine to store numbers and perform calculations on them is fundamental to computing. Many novice and expert users wrongly assume that number representation is a long-solved problem. Modern computers use binary encodings, and nothing more needs to be said, right? Wrong! For example, irrational numbers like pi are approximated; rational numbers like 2.0 may overflow when multiplied by a larger number; and (1/x)*x should equal 1.0 but often does not! Modern floating point evolved rather than being designed! John Gustafson has studied this and related problems of computing for many decades. He is the inventor of posits---a superior way to represent numbers in binary. In this two-part article, Gustafson surveys the history of machine number representations and illustrates by example how even the most modern number representations used today often fail. The IEEE 754 floating point standard is on shaky grounds, lacking a sound basis, and yet we persist in using it. How did we get here, and where might it lead? This is the fascinating story of computer numbers. --- Ted G. Lewis , Ubiquity senior editor
John L. Gustafson (Sat,) studied this question.