# Creating vectors from 0 to 1, i.e. 0:0.01:1 leads to invisible rounding errors?

17 views (last 30 days)

Show older comments

Hi,

I came across the following problem while trying to merge two tables with innerjoin:

Whenever I create vectors counting up from 0 to 1 tiny rounding errors seem to creep in, which one can only notice when scaling the vector up i.e. looking at (0:0.01:1)'*100.

Is there a chance I might have screwed up my Matlab settings at some point?

##### 1 Comment

Stephen23
on 3 Mar 2018

This topic comes up very often:

etc, etc, etc

Always use a tolerance when comparing floating point values.

### Accepted Answer

Ahmet Cecen
on 3 Mar 2018

Check "eps". Those are numerical artifacts introduced because you are accessing decimal points beyond the accuracy of MATLAB(double precision). Double is guaranteed to be accurate up to 15 significant digits (I think). The errors you see are the 16th or 17th significant digit of the original double you created i.e. 0.01.

This shouldn't effect your computation unless you do multiplication/division at very high orders of magnitude difference.

##### 2 Comments

Ahmet Cecen
on 3 Mar 2018

Edited: Ahmet Cecen
on 3 Mar 2018

### More Answers (1)

Testdriver
on 3 Mar 2018

##### 2 Comments

Walter Roberson
on 3 Mar 2018

With the one exception that if the data is certain to be drawn from exactly the same source then it is fair to compare it for equality.

For example, although you should not compare a computed value to 0.01 exactly, it is fair to test x == max(x) because the max(x) will be a bitwise identical copy of some element of x.

### See Also

### Categories

### Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!