Actually, [-100000:1:100000;] is fine. Look at the code here
http://hg.savannah.gnu.org/hgweb/octave/file/d95e719ef108/liboctave/Range.cc#l59
Octave's algorithm for getting a matrix from a range works as folows
1) Determine the number of elements in a range
2) Compute each index of the matrix using the equation: result(i) =
base + i * increment; where i is integer and goes from 0 to the number
of elements.
So there will be some difference between [-1:0.00001:1;]-0.00001 and
[-100000:1:100000;] due to floating point roundoff errors. However,
this difference does not accumulate. If we look at
[a,b] = max(abs([-1:0.00001:1;]-0.00001*[-100000:1:100000;]))
We see that the greatest error occurs at the 150001 element out of
200001 elements total. If the error was accumulating, we would expect
for the largest difference to occur closer to the end. Furthermore, if
there was actually an accuracy issue we would expect to see a
different number of columns in each matrix.