Decimal arithmatic, was Re: Python GUI app to impress the boss?

James J. Besemer jb at cascade-sys.com
Wed Oct 2 00:29:10 CEST 2002


Paul Rubin wrote:

>"James J. Besemer" <jb at cascade-sys.com> writes:
>  
>
>>>>>>(.70 * .05) + .000000001
>>>>>>
>>>>>>            
>>>>>>
>>>rounds to the right thing.
>>>
>>>      
>>>
>>Nope.  It helps in some cases but introduces errors in other cases
>>(e.g., negative numbers).
>>    
>>
>
>OK, fix the rounding direction:
>
>    def round(x):
>      if x < 0: sign = -1.0
>      else: sign = 1.0
>      return sign * (abs(x) + .00000001)
>  
>
I believe this still contains a hidden error.  I believe in all cases 
that blindly adding a fudge factor fixes some cases and makes others 
worse..  But I don't have time to prove it.  If you don't believe me 
then feel free to use the above definition.  It'll pro'lly be right most 
of the time.

Regards

--jb

-- 
James J. Besemer		503-280-0838 voice
2727 NE Skidmore St.		503-280-0375 fax
Portland, Oregon 97211-6557	mailto:jb at cascade-sys.com
				http://cascade-sys.com	








More information about the Python-list mailing list