我正在编写一个需要在使用旧版本python(2.4?)的服务器上运行的代码用数字代替numpy,我无能为力。为了测试代码,我用numpy.oldnumeric在
我从float32的数组开始,并将值存储到它们中。我的值在1.0e50-1.0e60范围内,数组将它们存储为“inf”。即使铸造1.0e39,也会导致“inf”。浮动不应该最大值接近1.0e108吗?!如何保存这些价值观?在
....
import numpy.oldnumeric as N
data = N.zeros(10, 'f')
....
for i in range(10): data[i] = (1.0e38)*pow(10.0,i)
print data[i]
给予
^{pr2}$解决方案: 单精度浮点(float32)的限制比我想象的小(~3e38),谢谢@又名不错,所以我从'f'(float32)切换到'dtype=N.float64',它有足够的容量。在
您正在使用单精度浮点…
在ieee754单精度中,指数的极限为127,给出的最大浮点值约为2*2^127,即
或3.40282346×10^38见http://en.wikipedia.org/wiki/IEEE_754
精确值为2^128-2^104=3402823466385289811704183484516925440
使用ieee754双精度(64位),限制为2^1024-2^971,即约为1.7976931348623157e308
相关问题 更多 >
编程相关推荐