我对生成的对象有最奇怪的行为numpy.arange:
for i in numpy.arange(xo, xn+h, h):
xs.append(float(i))
在这种情况下,xo=1,xn=4,h=0.1。
现在,我希望xs[-1]完全等于4.0== float(4)。但是,我得到以下信息:
>>> foo = xs[-1]
>>> foo == float(4)
False
>>> float(foo) == float(4)
False
>>> foo
4.0
>>> type(foo)
<type 'float'>
>>> int(sympy.ceiling(4.0)), int(sympy.ceiling(foo))
4 5
这里到底发生了什么?
放入print type(i)循环for打印<type 'numpy.float64'>。也许在float(i)选角过程中发生了什么?使用numpy.asscalar不会改变任何东西。
使用math.ceil(foo)而不是sympy.ceiling(foo)问题相同的事情(这是我实际需要工作的部分)。