> It looks like if you pass in a context, the Decimal constructor still > ignores that context: > > >>> import decimal as d > >>> d.getcontext().prec = 4 > >>> d.Decimal("1.2345678901234567890123456789012345678901234567890000", > d.getcontext()) > Decimal("1.2345678901234567890123456789012345678901234567890000") > >>> > > I think this is contrary to what some here have claimed (that you > could pass an explicit context to cause it to round according to the > context's precision).
That's not the way it is done. The context passed to the Decimal constructor is *only* used to determine what to do with a malformed string (whether to raise an exception or set a flag. To create a decimal with a context, use the Context.create_decimal() method: >>> import decimal as d >>> d.getcontext().prec = 4 >>> d.getcontext().create_decimal("1.234567890123456789012345678901234567890 1234567890000") Decimal("1.235") Raymond _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com