format long addition problem

1 view (last 30 days)
AR
AR on 1 Apr 2013
with format long
7.5e-6+1e-7
ans =
7.600000000000000e-06
>> 7.6e-6+1e-7
ans =
7.700000000000001e-06
**why not 7.6e-6+1e-7
ans = 7.700000000000000e-06**
and how can i avoid this 0.000000000000001e-06???

Answers (1)

Walter Roberson
Walter Roberson on 1 Apr 2013
  2 Comments
AR
AR on 1 Apr 2013
Edited: Walter Roberson on 1 Apr 2013
how can i convert 7.700000000000001e-06 to 7.7e-06????
Walter Roberson
Walter Roberson on 1 Apr 2013
You can use the symbolic toolbox, or you can use the fixed-point toolbox, or you can write your own Class for decimal arithmetic, or you can use a totally different tool that already implements decimal arithmetic.
There is no exact representation for 7.7e-06 in IEEE 754 binary floating point such as is used by MATLAB (and which is an international standard for numeric representation.) The closest you can get is
7.70000000000000081623076353398715809817076660692691802978515625e-06

Sign in to comment.

Products

Community Treasure Hunt

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

Start Hunting!