From 9ec7bc36fe9e16f8098c869e2bf48a16e08f9890 Mon Sep 17 00:00:00 2001 From: Raymond Hettinger Date: Fri, 25 Jan 2008 01:46:33 +0000 Subject: More design notes --- Lib/rational.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Lib/rational.py b/Lib/rational.py index d23f433..e2083db 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. -- cgit v0.12