Simplify one of the decimal recipes.
diff --git a/Doc/library/decimal.rst b/Doc/library/decimal.rst
index 330f139..c90e9b9 100644
--- a/Doc/library/decimal.rst
+++ b/Doc/library/decimal.rst
@@ -1880,13 +1880,13 @@
def float_to_decimal(f):
"Convert a floating point number to a Decimal with no loss of information"
n, d = f.as_integer_ratio()
- with localcontext() as ctx:
- ctx.traps[Inexact] = True
- while True:
- try:
- return Decimal(n) / Decimal(d)
- except Inexact:
- ctx.prec += 1
+ numerator, denominator = Decimal(n), Decimal(d)
+ ctx = Context(prec=60)
+ result = ctx.divide(numerator, denominator)
+ while ctx.flags[Inexact]:
+ ctx.prec *= 2
+ result = ctx.divide(numerator, denominator)
+ return result
.. doctest::