Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/322.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_Decimal_Precision - Fatal编程技术网

Python 较高的十进制精度是否会在每个实例中使用更多内存?

Python 较高的十进制精度是否会在每个实例中使用更多内存?,python,decimal,precision,Python,Decimal,Precision,对于Python模块,具有更高精度值的上下文是否会使用更多内存。如果不是,您为什么不总是使用最大值?Decimal非常有用,但是通常不需要无限小数位,货币通常需要2-4位 要存储的数字越多,它将使用的内存就越多,一般来说,您只需要使用所需的最小类型,这就是我们在Java中使用short而不是int的原因,同样的道理也适用于Python它只是在幕后多一点而已 现在,由于打字而导致内存问题的可能性很小,但这种情况仍然可能发生。是的,当然大小会增加;您可以通过以下方式进行检查: from sys im

对于Python模块,具有更高精度值的上下文是否会使用更多内存。如果不是,您为什么不总是使用最大值?

Decimal
非常有用,但是通常不需要无限小数位,货币通常需要2-4位

要存储的数字越多,它将使用的内存就越多,一般来说,您只需要使用所需的最小类型,这就是我们在Java中使用
short
而不是
int
的原因,同样的道理也适用于Python它只是在幕后多一点而已


现在,由于打字而导致内存问题的可能性很小,但这种情况仍然可能发生。

是的,当然大小会增加;您可以通过以下方式进行检查:

from sys import getsizeof
from decimal import Decimal, getcontext

getcontext().prec = 6
d = Decimal(1)/Decimal(3)
print(getsizeof(d))  # 104
getcontext().prec = 256
d = Decimal(1)/Decimal(3)
print(getsizeof(d))  # 216

ymmv。。。精确值可能是特定于实现/平台的。

内存、处理时间。。没有免费的lunch@MateenUlhaq不知道这是怎么回事?我意识到它比硬件慢(我想你是这么说的?),我只是想知道精度是否会直接影响内存使用。啊,我以为你问的是decimal和floatPython 2.7.10,两者都得到“80”。Python 3得到104和216。我忘了补充:细节可能是实现/平台特定的。但更高精度占用更多内存的事实并非如此。这里的代码只供您使用:这样您就可以了解在特定情况下消耗了多少内存。