Error in ceil() function?
8 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Norbert Keimling
le 2 Nov 2015
Modifié(e) : Stephen23
le 2 Nov 2015
Hello,
Does anybody know why the ceil()-function Returns two different values in the following case?
X=[4 (1-0.95)*80]; ceil(X)
ans =
4 5
Thank you!
0 commentaires
Réponse acceptée
Stephen23
le 2 Nov 2015
Modifié(e) : Stephen23
le 2 Nov 2015
Floating point numbers are how decimal values are stored in your computer: they do not have infinite precision, and they can only approximate many values. Even if it looks like the "actual" value is being shown to you this does not mean that the internal representation inside your computer is the same value.
Lets have a quick look at those values:
>> X=[4 (1-0.95)*80]
X =
4.0000 4.0000
>> fprintf('%.30f\n',X)
4.000000000000000000000000000000
4.000000000000003552713678800501
It is not a problem with MATLAB, this is simply how (binary) computers work.
Read all about it:
And if you want to see what the decimal equivalent of a floating point value is, then try this FEX submission:
As its author points out: "Don't confuse the exact conversion with significance!"
0 commentaires
Plus de réponses (0)
Voir également
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!