how can i show an irrational number to 100 decimal places in python?

后端 未结 4 1460
孤城傲影
孤城傲影 2020-12-03 03:38

I am trying to find the square root of 2 to 100 decimal places, but it only shows to like 10 by default, how can I change this?

相关标签:
4条回答
  • 2020-12-03 03:57

    You can use gmpy2.

    import gmpy2
    ctx = gmpy2.get_context()
    ctx.precision = 300
    print(gmpy2.sqrt(2))
    
    0 讨论(0)
  • 2020-12-03 03:58

    You can use sympy and evalf()

    from sympy import sqrt
    print(sqrt(2).evalf(101))
    
    0 讨论(0)
  • 2020-12-03 04:06

    decimal module comes in handy.

    >>> from decimal import *
    >>> getcontext().prec = 100
    >>> Decimal(2).sqrt()
    Decimal('1.414213562373095048801688724209698078569671875376948073176679737990732478462107038850387534327641573')
    
    0 讨论(0)
  • 2020-12-03 04:15

    You can use the decimal module for arbitrary precision numbers:

    import decimal
    
    d2 = decimal.Decimal(2)
    
    # Add a context with an arbitrary precision of 100
    dot100 = decimal.Context(prec=100)
    
    print d2.sqrt(dot100)
    

    If you need the same kind of ability coupled to speed, there are some other options: [gmpy], 2, cdecimal.

    0 讨论(0)
提交回复
热议问题