我对生成的对象有最奇怪的行为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)
问题相同的事情(这是我实际需要工作的部分)。