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