Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在python中如何处理大小数?_Python_Numbers_Decimal - Fatal编程技术网

在python中如何处理大小数?

在python中如何处理大小数?,python,numbers,decimal,Python,Numbers,Decimal,我正在分析一组数据。数据是一个值列表,它们非常大,有许多小数点。例如: -3.21446735874, 48.4505248207, 0. -3.21476825075, 48.4504325609, 0. 我需要能够在计算中使用这些数字,而不会让python降低每个数字的精度及其大小floatx和intx显然不起作用!。我试过十进制模块,但显然由于导入功能不正常或其他原因,无法再使用它。我更希望解决方案是平台独立的,只使用默认的python模块 您试图直接调用decimal模块,而不是使用d

我正在分析一组数据。数据是一个值列表,它们非常大,有许多小数点。例如:

-3.21446735874, 48.4505248207, 0.
-3.21476825075, 48.4504325609, 0.

我需要能够在计算中使用这些数字,而不会让python降低每个数字的精度及其大小floatx和intx显然不起作用!。我试过十进制模块,但显然由于导入功能不正常或其他原因,无法再使用它。我更希望解决方案是平台独立的,只使用默认的python模块

您试图直接调用decimal模块,而不是使用decimal.decimal。decimal是一个包含decimal、“DefaultContext”等属性的模块对象,要访问这些属性,请使用点符号decimal.attr_name

还可以使用“从十进制导入”将选定属性导入到当前名称空间中。。语法:

你还有一个包裹

bigfloat包是GNU MPFR库的Python包装,用于实现任意精度浮点可靠算法


您可以根据需要精确地工作。

我已经尝试了十进制模块,但显然由于无法正常导入或其他原因,它无法再使用了-说什么?显然它不能再使用了-请详细说明。decimal是一个默认的Python模块,它与平台无关。您是否将Python脚本命名为decimal.py?“无效导入”是什么意思?回溯最近一次调用最后一次:printdecimal1/decimal7 TypeError中的文件RoutePlot.py,第17行:“模块”对象不可调用------程序退出,代码为:1按return tocontinue@BarrySmith请发布您正在运行的代码。听起来您正试图将模块对象用作函数。您可能只需将十进制改为十进制。十进制,然后就可以了。
>>> import decimal
>>> decimal.Decimal('1.234')
Decimal('1.234')
>>> decimal.DefaultContext
Context(prec=28, rounding=ROUND_HALF_EVEN, Emin=-999999999, Emax=999999999, capitals=1, flags=[], traps=[Overflow, InvalidOperation, DivisionByZero])
>>> from decimal import Decimal, DecimalTuple  #import two attrs in current namespace
>>> Decimal('1.234')  #now use it directly, no dot notation required
Decimal('1.234')