From: Raymond Hettinger Date: Fri, 25 Jan 2008 01:46:33 +0000 (+0000) Subject: More design notes X-Git-Tag: v2.6a1~414 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=9ec7bc36fe9e16f8098c869e2bf48a16e08f9890;p=python More design notes --- diff --git a/Lib/rational.py b/Lib/rational.py index d23f433969..e2083dba4a 100755 --- a/Lib/rational.py +++ b/Lib/rational.py @@ -82,6 +82,10 @@ def _binary_float_to_ratio(x): _RATIONAL_FORMAT = re.compile( r'^\s*(?P[-+]?)(?P\d+)(?:/(?P\d+))?\s*$') +# XXX Consider accepting decimal strings as input since they are exact. +# Rational("2.01") --> s="2.01" ; Rational.from_decimal(Decimal(s)) --> Rational(201, 100)" +# If you want to avoid going through the decimal module, just parse the string directly: +# s.partition('.') --> ('2', '.', '01') --> Rational(int('2'+'01'), 10**len('01')) --> Rational(201, 100) class Rational(RationalAbc): """This class implements rational numbers.