Error on summation of three numbers

9 views (last 30 days)
Hi, When we used this commands on commands windows of Matlab 2013a, we found a problem and we couldn't understand why that happened.
>> a=4.2; b=0.8; c=5;
>> a+b-c
ans = 0
>> a-c+b
ans = 2.2204e-16
>> b-c+a
ans = 0
The question is why on the second step (a-c+b) Matlab reached a number except zero! and how we can be sure that doesn't happen anymore?!

Accepted Answer

A Jenkins
A Jenkins on 5 Mar 2014
  2 Comments
Jos (10584)
Jos (10584) on 5 Mar 2014
follow the link in A Jenkins' answer …

Sign in to comment.

More Answers (1)

Roger Stafford
Roger Stafford on 5 Mar 2014
To give you a very brief answer, your computer is using a binary representation of floating point numbers and cannot therefore exactly represent 4.2 and .8 . The resulting round-off errors produce the tiny difference you see here. In other words, round-off errors are causing the addition operation to not be strictly associative. It's the same difficulty a decimal calculator would have adding fractions like 1/3, 1/7, etc. It cannot represent them exactly and therefore makes tiny errors with them.

Community Treasure Hunt

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

Start Hunting!