I'm sorry, but your problem lies in understanding floating point arithmetic. Two sets of floating point numbers, created by even a different order of operations, will often not be identical.
.1 + .2 - .3 == -.3 + .1 + .2
You have effectively done the same thing, created a list of numbers, that you expect should be identical to the another. So, for example...
So two vectors, containing what should be the numbers 0 to 1, in increments of 0.1, are not identical. 0.3 was not the same in both in my vectors. Intersect must now fail, as it did for you.
The answer is to use a tolerance when I do any such operation. For example, while there is no intersecttol, we could use ismembertol like this:
which found all 11 numbers in both vectors.