【问题标题】:how can i show an irrational number to 100 decimal places in python?如何在 python 中将无理数显示到小数点后 100 位?
【发布时间】:2011-01-19 08:32:15
【问题描述】:

我试图找到小数点后 2 到 100 位的平方根,但默认情况下它只显示喜欢 10,我该如何更改?

【问题讨论】:

    标签: python math decimal-point


    【解决方案1】:

    decimal 模块派上用场了。

    >>> from decimal import *
    >>> getcontext().prec = 100
    >>> Decimal(2).sqrt()
    Decimal('1.414213562373095048801688724209698078569671875376948073176679737990732478462107038850387534327641573')
    

    【讨论】:

      【解决方案2】:

      您可以将decimal 模块用于任意精度数:

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

      如果您需要与速度相关的相同能力,还有其他一些选项:[gmpy]、2cdecimal

      【讨论】:

        【解决方案3】:

        您可以使用gmpy2

        import gmpy2
        ctx = gmpy2.get_context()
        ctx.precision = 300
        print(gmpy2.sqrt(2))
        

        【讨论】:

        • 对我来说是最好的解决方案。通过使用库decimal,您也可以获得类似的解决方案,但如果您想使用数字(不仅仅是显示在屏幕上),对我来说这个更容易。谢谢。
        【解决方案4】:

        你可以使用 sympy 和evalf()

        from sympy import sqrt
        print(sqrt(2).evalf(101))
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2022-12-05
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-05-27
          • 2012-10-28
          相关资源
          最近更新 更多