I was quite disappointed when decimal.Decimal(math.sqrt(2))
yielded
Decimal('1.4142135623730951454746218587388284504413604736328125')
and the digits after the 15th decimal place turned out wrong. (Despite happily giving you much more than 15 digits!)
How can I get the first m
correct digits in the decimal expansion of sqrt(n)
in Python?
Advertisement
Answer
Use the sqrt
method on Decimal
>>> from decimal import * >>> getcontext().prec = 100 # Change the precision >>> Decimal(2).sqrt() Decimal('1.414213562373095048801688724209698078569671875376948073176679737990732478462107038850387534327641573')