[Python-Dev] Re: Decimal data type issues

Batista, Facundo FBatista at uniFON.com.ar
Wed Apr 21 16:03:35 EDT 2004


[Tim Peters]

#- [Batista, Facundo]
#- > ...
#- >   - Methods like round() don't need to be discussed: the 
#- Spec defines
#- > how them work, and the PEP is for implementing the PEP.
#- 
#- Actually, there is no round() operation in the spec.  I 
#- don't remember
#- whether there used to be, but there definitely isn't now.  

You're right. My fault. 


#- Doesn't mean we
#- can't supply .round(), does mean we have to spell out what 
#- it does.  I
#- assume decimal.round(whatever) acts the same as the spec's 
#- decimal.plus()
#- would act if "whatever" were temporarily (for the duration 
#- of plus()) folded
#- into context.  If so, that's all it needs to say.

Well, I think we must decide how it works

With:

>>> d = Decimal('12345.678')
>>> d
Decimal( (0, (1, 2, 3, 4, 5, 6, 7, 8), -3) )
>>> str(d)
'12345.678'

And being the syntax Decimal.round(n), we have the
following options:

  a) n is the quantity of relevant digits of the
     final number (must be non negative).

     >>> d.round(4)
     Decimal( (0, (1, 2, 3, 5), 1L) )
     >>> str(d.round(4))
     '1.235E+4'

  b) n has the same behaviour that in the built in round().

     >>> d.round(1)
     Decimal( (0, (1, 2, 3, 4, 5, 7), -1L) )
     >>> str(d.round(1))
     '12345.7'
     >>> d.round(-1)
     Decimal( (0, (1, 2, 3, 5), 1L) )
     >>> str(d.round(-1))
     '1.235E+4'

What option do you all like more?

.	Facundo



More information about the Python-Dev mailing list