format long addition problem

2 vues (au cours des 30 derniers jours)
AR
AR le 1 Avr 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???

Réponses (1)

Walter Roberson
Walter Roberson le 1 Avr 2013
  2 commentaires
AR
AR le 1 Avr 2013
Modifié(e) : Walter Roberson le 1 Avr 2013
how can i convert 7.700000000000001e-06 to 7.7e-06????
Walter Roberson
Walter Roberson le 1 Avr 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

Connectez-vous pour commenter.

Catégories

En savoir plus sur Logical dans Help Center et File Exchange

Produits

Community Treasure Hunt

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

Start Hunting!

Translated by