Bugs item #1479776, was opened at 2006-05-01 10:37 Message generated for change (Comment added) made by tim_one You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=105470&aid=1479776&group_id=5470
Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: Python Interpreter Core >Group: Not a Bug >Status: Closed >Resolution: Invalid Priority: 5 Submitted By: Michael Nolta (mrnolta) Assigned to: Nobody/Anonymous (nobody) Summary: float->str rounding bug Initial Comment: Hi, Here's my problem: >>> print "%.2f" % 2.195 2.19 The output should be "2.20". It's sensitive to whether the value is greater than 1. For example, this works: >>> print "%.4f" % 2.195e-2 0.0220 Here's my full version info: Python 2.4.1 (#1, May 16 2005, 15:19:29) [GCC 4.0.0 20050512 (Red Hat 4.0.0-5)] on linux2 -Mike ---------------------------------------------------------------------- >Comment By: Tim Peters (tim_one) Date: 2006-05-01 11:54 Message: Logged In: YES user_id=31435 This isn't a bug. You should read the Python Tutorial's Appendix on floating-point issues. As you can see from >>> 2.195 2.1949999999999998 the closest representable float is actually a little bit smaller than the decimal 2.195, so there's no reason for it to "round up". Try the same thing in C (or any other language exposing your hardware's binary floating point), and you should see the same result. If you need exact decimal values, use Python's "decimal" module instead. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=105470&aid=1479776&group_id=5470 _______________________________________________ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com