title: Wrong values when iterating over numpy array
body: <p>Using the following code:</p>
  
  <pre><code>import numpy as np
  k = .2
  A = np.arange(.01, k, .01, dtype=np.float64)
  
  # values
  print(A)
  print([A[i] for i in range(len(A))])
  
  # comparison
  print(A == [A[i] for i in range(len(A))])
  
  # check for value
  print(.06 in A)
  </code></pre>
  
  <p>The corresponding output is:</p>
  
  <pre><code>[0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0.1  0.11 0.12 0.13 0.14
   0.15 0.16 0.17 0.18 0.19]
  [0.01, 0.02, 0.03, 0.04, 0.05, 0.060000000000000005, 0.06999999999999999, 0.08, 0.09, 0.09999999999999999, 0.11, 0.12, 0.13, 0.14, 0.15000000000000002, 0.16, 0.17, 0.18000000000000002, 0.19]
  [ True  True  True  True  True  True  True  True  True  True  True  True
    True  True  True  True  True  True  True]
  False
  </code></pre>
  
  <p>What sort of magic is happening here ? How am I supposed to iterate over the array keeping precision ?</p>
  
  <p><strong>EDIT</strong>: as precised in <a href="https://stackoverflow.com/questions/588004/is-floating-point-math-broken">Is floating point math broken ?</a> this lost of precision is a known issue, language agnostic. I would know what is the <strong>python way to handle this</strong> ? Using an epsilon seems to be a little hacky for me</p>