如何在python中定义一个包含1000位数字的十进制类?

Hamidfzm

我需要一个包含1000个十进制数字的类来计算一系列pi值。花时间并不重要。我如何定义__add__&...功能来做到这一点?例如,我需要一个可以保留此数字的值:3.14159265358979379323846238327950288419716939937510582097494459230781640628620899862803482534211706798214808651328230664709384460058058172172535940812848111745028410270193852110952964462294895493038196442881097566566544644647576323063745024900852694654925654654-230-230654654290-230-450654230654654654-230-230654654230654过命死死死死的女人死了吗?

:))

这个数字使用如下decimal.Decimal显示:

from decimal import Decimal as dc
>>> x=dc(3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113)
>>> x
Decimal('3.141592653589793115997963468544185161590576171875')

但是我需要一个包含所有DIGITS的新类,并且可以在其中使用加,除和...函数,例如2 + 1,而pi数就是一个例子,而我完全不需要计算要计算的pi数超大十进制数!

巴库留

您必须使用1000个十进制数字设置上下文:

context = decimal.Context(prec=1000)
decimal.setcontext(context)

从现在开始,计算将使用1000位精度。

例子:

>>> decimal.setcontext(decimal.Context(prec=1000))
>>> pi = decimal.Decimal('3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113')
>>> pi
Decimal('3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113')
>>> pi + 2
Decimal('5.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113')

注意:

  • 您必须使用字符串来初始化,Decimal因为如果使用float,解释器将必须首先截断它。(我也相信,只有最新版本的decimalaccept才可以接受float参数。在旧版本中,您必须Decimal.from_float改用它)。
  • 在计算过程中保留十进制数字。

您还可以通过localcontextcontextmanager在本地使用上下文

context = decimal.Context(prec=1000)

with decimal.localcontext(context):
    # here decimal uses 1000 digits for computations
    pass

# here the default context is restored.

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在python中定义一个包含1000位数字的十进制类?

来自分类Dev

如何从PHP中的十进制数字中删除最后一位数字

来自分类Dev

如何从PHP中的十进制数字中删除最后一位数字

来自分类Dev

Python:将一位数字十进制转换为十六进制

来自分类Dev

另一个十进制linq中包含的十进制

来自分类Dev

如何在C中输入一个带有0和十进制的数字并做正弦值?

来自分类Dev

在Python中截断一个十进制值

来自分类Dev

如何从8位带符号二进制数中得到一个负的十进制值?

来自分类Dev

用python在二进制文件中写一个1024位长的十进制数

来自分类Dev

我如何在mongodb中执行类似查询包含十进制部分的大十进制数字

来自分类Dev

Javascript-如何获取十进制数字后的最后一位数字?

来自分类Dev

如何在bash中为循环写一个十进制

来自分类Dev

CodeGo.net>我如何将一个十进制值舍入到小数点后两位。每1000个

来自分类Dev

如何将十进制数字格式化为2或3位数字?

来自分类Dev

一个8位数(加十进制)的计算器可以进行多少次运算?

来自分类Dev

如何在C ++中打印最多6个十进制数字的数字?

来自分类Dev

十进制总和中是否只有16位数字

来自分类Dev

在汇编中明确输入一个十进制数字

来自分类Dev

从最多包含6位数字的字符串中提取数字值,十进制可选为2位数字

来自分类Dev

如何在AVR中以十进制格式存储数字

来自分类Dev

如何在Java中将一个双精度数字点分隔成两个十进制数字?

来自分类Dev

如何在python中为另一个类定义一个包含类?

来自分类Dev

十进制中每位数多少位

来自分类Dev

在C中存储一个长十进制

来自分类Dev

在C中存储一个长十进制

来自分类Dev

如何在Razor视图中正确发布一个十进制值?

来自分类Dev

用C编写一个程序,该程序将使用基数和n位数字,并输出由这些数字表示的十进制数

来自分类Dev

从 R 中的 IP 十进制形式中删除最后一个八位字节

来自分类Dev

在Orient-DB中我如何舍入一个十进制值

Related 相关文章

  1. 1

    如何在python中定义一个包含1000位数字的十进制类?

  2. 2

    如何从PHP中的十进制数字中删除最后一位数字

  3. 3

    如何从PHP中的十进制数字中删除最后一位数字

  4. 4

    Python:将一位数字十进制转换为十六进制

  5. 5

    另一个十进制linq中包含的十进制

  6. 6

    如何在C中输入一个带有0和十进制的数字并做正弦值?

  7. 7

    在Python中截断一个十进制值

  8. 8

    如何从8位带符号二进制数中得到一个负的十进制值?

  9. 9

    用python在二进制文件中写一个1024位长的十进制数

  10. 10

    我如何在mongodb中执行类似查询包含十进制部分的大十进制数字

  11. 11

    Javascript-如何获取十进制数字后的最后一位数字?

  12. 12

    如何在bash中为循环写一个十进制

  13. 13

    CodeGo.net>我如何将一个十进制值舍入到小数点后两位。每1000个

  14. 14

    如何将十进制数字格式化为2或3位数字?

  15. 15

    一个8位数(加十进制)的计算器可以进行多少次运算?

  16. 16

    如何在C ++中打印最多6个十进制数字的数字?

  17. 17

    十进制总和中是否只有16位数字

  18. 18

    在汇编中明确输入一个十进制数字

  19. 19

    从最多包含6位数字的字符串中提取数字值,十进制可选为2位数字

  20. 20

    如何在AVR中以十进制格式存储数字

  21. 21

    如何在Java中将一个双精度数字点分隔成两个十进制数字?

  22. 22

    如何在python中为另一个类定义一个包含类?

  23. 23

    十进制中每位数多少位

  24. 24

    在C中存储一个长十进制

  25. 25

    在C中存储一个长十进制

  26. 26

    如何在Razor视图中正确发布一个十进制值?

  27. 27

    用C编写一个程序,该程序将使用基数和n位数字,并输出由这些数字表示的十进制数

  28. 28

    从 R 中的 IP 十进制形式中删除最后一个八位字节

  29. 29

    在Orient-DB中我如何舍入一个十进制值

热门标签

归档