Effacer les filtres
Effacer les filtres

Numerical issue in simple summation/addition

1 vue (au cours des 30 derniers jours)
Ali
Ali le 23 Jan 2016
Commenté : Image Analyst le 23 Jan 2016
below code prints 1. But if you have b = 0.2 at the second line, it does not print 1.
a = 0;
b = 0.1;
c = a;
while c < 1
c
c = c+b;
end

Réponse acceptée

Star Strider
Star Strider le 23 Jan 2016

Plus de réponses (2)

Image Analyst
Image Analyst le 23 Jan 2016
It has nothing to do with the version. It has everything to do with digitization/quantization differences as discussed in the FAQ: http://matlab.wikia.com/wiki/FAQ#Why_is_0.3_-_0.2_-_0.1_.28or_similar.29_not_equal_to_zero.3F

Ali
Ali le 23 Jan 2016
Modifié(e) : Ali le 23 Jan 2016
So, what is the fix? how can i have such a while loop with 0.1 increments and stop before 1?
  4 commentaires
Star Strider
Star Strider le 23 Jan 2016
My pleasure.
Image Analyst
Image Analyst le 23 Jan 2016
"What's the fix?" Did you read the FAQ like both Star and I pointed you to? In there is the "fix" or way to deal with the reality of it -- you check against a tolerance.

Connectez-vous pour commenter.

Catégories

En savoir plus sur Logical dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by