Software Floating Point Other than Binary

Last Up date on: 2006 December 3
Page Started: 2003 November 28

I looked at the efforts to make "Floating Point" arithmetic agree with what accountants want to see, in a discussion web page by the English IBM Fellow.

After some thought (curing my insomnia) I have convinced myself that numbers are by and large used in two distinctly different ways: Counting & Measuring.

Engineering and most scientific things involve measures and Floating Binary works just fine. By its very nature Floating Point is never perfectly accurate, which is no problem for measurements that always have some limit of accuracy. The proposed Decimal Floating point falls on its ass for values like 1/3 and 2/3 which after 1/2 are the most useful parts of a whole. (Much more useful than 1/5.)

In counting (which is what the business world does with pennies, or some other form of coinage.) numbers are either with zero error, or they are approximations. Unfortunately, most accountants can't understand this. At one time in my life I had to write a 1401 program to tell what percent of the keypunching was done by each girl. The stupid accountants wanted whole percents; but insisted that the sum for all the girls MUST add to exactly 100%. (There have been papers published how you add the percentage error of one to the next, so such errors add to zero.)

My position is: For decimal results Floating Point should never be used. Once again, the IEEE is off its rocker trying to in some grandiose way impose standards. Look how they screwed up the first Floating Point Standard with things like phantom bits and Nan's, and before that something called RS-232.

If Floating Point were to be done for better accuracy for most frequently used simple numbers, it would be much better done in floating base 12, which could handle 1/2, 1/3, 2/3, 1/4, 1/6, 1/9 and 1/12 without error. But then, I suppose this would confuse both the engineers and accountants.

In a sadistic way I feel like going to their meetings and making a lot of noise about base 12 Floating Point. You may want to deny that you have even known me.


There are good mathematical reasons for having many divisors in the base of a number system. The Babylonians realized this when they went to base 60. And we still use this for time and angles. The problem is that most of us can't memorize our times tables up to 59X59.

The important thing for a number system inside of a computer is to not loose accuracy. In binary any fraction with a denominator having a factor other than 2 is infinitely long. In base ten any fraction having in its denominator a factor other than 2 or 5 is infinitely long. Classic examples are 1/3, 2/3, 1/6, 1/12, 1/7 etc.

It doesn't mater what arithmetic is done inside a computer, especially in floating point, so long as accuracy is not lost. The input and output will be converted to decimal and it doesn't matter what went on inside the machine. To this end it would be best to have as many factors in the base used for the internal arithmetic as possible. Intellectuals have proposed dropping the decimal system and going to base 12. The advantage of base 12 is that 12 has more divisors, including 2, 3, 4, & 6 but not 5 or 7.

If there is to be anything besides floating binary: I would like to propose a floating point base 60060. Why? Because this number is the product of: 2,2,3,5,7,11, and 13. Values like 1/10, 1/4, 1/3, 1/5, 1/6, 1/7, 1/9, 1/11, 1/12 and even 1/13 could all be kept without any loss of accuracy. Another virtue of this is that 60060 quite efficiently uses 16 bit words. It has an "efficiency" of 91.6% while floating decimal would use only 10 out of the 16 possible values that can be stored in 4 bits; floating decimal makes only 62.5% utilization of the memory it takes. There are "ticks" to make Floating Decimal use 16-bit words more efficiently. But, they add much more confusion.
Of course the IEEE loves confusion! It makes them feel smart and important.


You can: E-mail me or Click on the phone numbers for my BIO:

Go to: My Home Page My phone #'s Go to: This page TOP