Question: In short, the problem I encounter is this:

```
aa = np.arange(-1., 0.001, 0.01)
aa[-1]
Out[16]: 8.8817841970012523e-16

```

In reality, this cause a series problem since my simulations doesn't allow positive value inputs.

I can sort of get around by doing:

```
aa = np.arange(-100, 1, 1)/100.
aa[-1]
Out[21]: 0.0

```

But this is a pain. Practically you can't do this every time. 

This seems like such a basic problem. There's gotta be something I am missing here.
By the way, I am using Python 2.7.13.

Answer: 
Using np.linespace solved it for me:

For example `np.linspace(0.5, 0.9, 5)` produce [0.5 0.6 0.7 0.8 0.9].
I have the same problem as you do.

Here is a simple solution:

```
for b in np.arange(maxb,minb+stepb,stepb):    
    for a in np.arange(mina,maxa+stepa,stepa):        
        a=round(a,2);b=round(b,2); # 2 is the size of the floating part.

```