PEP proposal for round(x,n) enhancement
Christopher Smith
csmith at blakeschool.org
Wed Sep 12 14:41:04 EDT 2001
python-list at python.org writes:
>> exactly represent such numbers. Just try
>> >>> 1/5.
>> 0.20000000000000001
>
>The only differnce between Python and MATLAB here is that MATLAB doesn't
>displya as many digits as Python, so you don't see that 1 on the end.
Just a note here. Python only does this when the repr() is called to
display the number. The str() function produces a more expected visual
result;
>>> x=1/5.
>>> print x
0.2
>>> print `x`
0.20000000000000001
>>> x
0.20000000000000001
Edu-sig had a way to make displayhook use str() when it prints numbers in
the IDE environment so that 0.2 would have been printed when you just
type a calculation (like 1/5. or a variable like x with no explicit
print). If you run the following code you can get this behavior:
####
import sys
import __builtin__
def mydisplayhook(o):
if type(o) == type(0.1):
# print a better looking float
print str(o)
# remember to assign to _!
__builtin__._ = o
else:
#use the old displayhook in every other case
sys.__displayhook__(o)
sys.displayhook=mydisplayhook
####
(Again, this is not the reason for the proposal for the round()
enhancement but this might be useful.)
/c
More information about the Python-list
mailing list