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?!

 Akzeptierte Antwort

A Jenkins
A Jenkins am 5 Mär. 2014

0 Stimmen

2 Kommentare

alireza
alireza am 5 Mär. 2014
Why? any body knows?
Jos (10584)
Jos (10584) am 5 Mär. 2014
follow the link in A Jenkins' answer …

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Roger Stafford
Roger Stafford am 5 Mär. 2014

1 Stimme

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.

Kategorien

Mehr zu Get Started with MATLAB finden Sie in Hilfe-Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by