Error during multiplication (r2009b)
2 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
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
0 commentaires
Réponse acceptée
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.
Plus de réponses (0)
Voir également
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!