0
我正在使用numpy
在python 2.7
下,并且想到使用以代表像2e315这样的大数字。然而它被认为是inf
,尽管它小于允许的最大表示,接近1e4932。为什么数字低于numpy中float128的最大值被视为inf?
In [1]: import numpy as np
In [2]: np.finfo(np.float128)
Out[2]: finfo(resolution=1e-18, min=-1.18973149536e+4932, max=1.18973149536e+4932, dtype=float128)
In [3]: np.float128(2E315)
Out[3]: inf
前面的例子在pythonanywhere.com测试与python 2.7
和numpy 1.8.1
其具有以下特性:
$ uname -a
Linux harry-liveconsole4 4.4.0-83-generiC#106-Ubuntu SMP Mon Jun 26 17:54:43 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
我还测试了上面的例子在我的本地64位的机器,但遇到错误AttributeError: 'module' object has no attribute 'float128'
和我有numpy 1.8.0
那里。
我错过了什么?我应该有什么架构才能在python下有? 有没有一种解决方法来代表这样的大数字,而不是inf
,但是让我们输入它们呢?
您测试此在'python 2.7'下?因为我得到不同的结果。对于'np.float128('2e315')'我仍然得到'inf'结果。 –
也是我的numpy版本是''1.8.1'' –
@CedricZoppolo是的,这对Python2 –