On 08/12/2010 01:43 PM, Bradley Hintze wrote:
Hi all.

Is there a way I can keep my floating point number as I typed it? For
example, I want 34.52 to be 34.52 and NOT 34.5200000002.



Is this a Python question?


The answer is both Yes and No. The binary floating point representation of numbers on a computer cannot exactly represent most decimal number you would like to type. (Similar to the fact that you cannot represent 1/3 exactly in a decimal system.)

But that's the internal representation, over which you have no control. You do, however, have control over how a number is displayed when printed.

Python 2: Choose a format that displays the exact number of digits you want
'%.2f' % a
or let str(a) choose
but not repr(a) which tries to get all the digits.
(Adding to the confusion, you might also find it confusing to understand which of str() or repr() Python chooses to display a number.)

Python 3: Python3 uses David Gay’s algorithm for chosing how to display floats. Both str(a) and repr(a) produce '34.52' for your example, which is probably just what you want.


Gary Herron


--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to