[Edu-sig] Re: [Pythonmac-SIG] Re: Number format in IDE

Dethe Elza delza@alliances.org
Mon, 27 Aug 2001 11:54:31 -0700


There is much being made of the problems with computing using binary 
floating values, which is the default with all computer languages that 
I'm aware of.

One of the nice things about python is that it makes it relatively easy 
to change the default.  For instance, you could use use decimal 
division, which wouldn't help with cases like 1 / 3 = 0.33333..., but 
would allow 0.1 + 0.1 + 0.1 = 0.3 to be expressed precisely.  Decimal 
math works through the problem just like person would on paper (or in 
their head), not using any of the high-speed special-purpose tools of 
the modern computer (floating point units), but it works and gives the 
answer you'd expect.

The other solution, and one which keeps getting proposed for python and 
deferred, is rational math, where 1/3 is expressed as 1/3, not as 
0.3333... (or as 0).

Unfortunately, since neither of these are built-in, you either need to 
import a library and use them explicity, or do some fancy footwork with 
python at deeper levels than many of us (myself included) feel 
comfortable with.  But if there's a real need for this, maybe we should 
put our heads together and figure out the best way.

My opinion is that using floating point and rounding is a hack (even if 
calculators do it) and we should find a better solution.  Of course, 
while these options are great for using python as a calculator, they 
would suck if used for a ray-tracer (you wouldn't want to use python 
long ints for such a beast, either).  Thankfully, python gives us the 
flexibility to use the right tool for the job, if only we can determine 
what  the *right* tool is.


-- 

Dethe Elza (delza@burningtiger.com)
Chief Mad Scientist
Burning Tiger Technologies (http://burningtiger.com)
Living Code Weblog (http://livingcode.ca)