In article <[EMAIL PROTECTED]>,
Brad Tilley <[EMAIL PROTECTED]> wrote:
> > Brad Tilley wrote:
> >
> >> What is the proper way to limit the results of division to only a few
> >> spaces after the decimal? I don't need rocket-science like precision.
> >> Here's an example:
> >>
> >> 1.775 is as exact as I need to be and normally, 1.70 will do
...
> I'm summing up the bytes in use on a hard disk drive and generating a
> report that's emailed based on the percentage of the drive in use.
Stilling guessing a little about what you're trying to do -
probably implicitly or explicitly invoking the "repr" function
on this values (implicitly for example via repr() or str() on
a sequence of them.) So,
a = [1.775, 1.949]
print a
yields
[1.7749999999999999, 1.9490000000000001]
You will get something more like what you want with
the str() function instead. str(1.775) == '1.775'
from types import FloatType
class ClassicFloat(FloatType):
def __repr__(self):
return self.__str__()
print map(ClassicFloat, [1.775, 1.949])
yields
[1.775, 1.949]
(Seems to me the standard float type behaved like
this in Python 1.5.4, hence "classic".)
Donn Cave, [EMAIL PROTECTED]
--
http://mail.python.org/mailman/listinfo/python-list