Effacer les filtres
Effacer les filtres

Error during multiplication (r2009b)

2 vues (au cours des 30 derniers jours)
Praneeth Namburi
Praneeth Namburi le 20 Août 2011
Hi all, I am using MATLAB r2009b and when I type the following at the command prompt, I get something very unexpected...
19*2.2 == 41.8
I get an answer of 0, when the answer should be 1! Upon typing 19*2.2 and inspecting the answer, I get 41.800000000000004.
Moreover, mod(41.8, 2.2) gives the correct answer, 0, but mod(41.8/2.2, 1) gives the wrong answer, 0.999999999999996.
Kindly let me know if this is a known issue that has already been discussed and rectified and if my friend discovered just a specific case of this issue.
Thanks in advance for your time!
- Praneeth

Réponse acceptée

Jan
Jan le 20 Août 2011
Welcome to the world of floating point arithmetics with limited precision. Numbers are represented as DOUBLE using 64 bits. In consequence not all numbers can be represented exactly, and you found out (like thousands of others users before), that 19*2.2 has a slightly different representation as 41.8. See also: FAQ: Why is 0.3-0.2~=0.1.
BTW. it is worth to read the rest of the FAQ also, because it contains the frequent standard problems of other MATLAB beginners.
  1 commentaire
Praneeth Namburi
Praneeth Namburi le 20 Août 2011
Hi Jan, Thank you for your explanation and the link!

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Introduction to Installation and Licensing 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