Info

Cette question est clôturée. Rouvrir pour modifier ou répondre.

I found strange error in matlab R2013a calculation using0 'floor'

3 vues (au cours des 30 derniers jours)
Eugen
Eugen le 25 Oct 2013
Clôturé : MATLAB Answer Bot le 20 Août 2021
Use variable c1=0.011. c1 is multiplied by 10 until c1=11. Then use floor(c1) and get value 10
c1=0.011;
c1=c1*10;
c1=c1*10;
c1=c1*10;
floor (c1)
ans =
10
Then use variable c1=0.0011. c1 is multiplied by 10 until c1=11. Then use floor(c1) and get value 11
c1=0.0011;
c1=c1*10;
c1=c1*10;
c1=c1*10;
c1=c1*10;
floor (c1)
ans =
11
Then use variable c1=0.11. c1 is multipled by 10 until c1=11. Then use floor(c1) and get value 11
c1=0.11;
c1=c1*10;
c1=c1*10;
floor (c1)
ans =
11
WHY the first result differ from second and third?

Réponses (1)

A Jenkins
A Jenkins le 25 Oct 2013
Because floating point math is a strange thing.
Try setting
format long
and then rerun your above calculations. (Remove the semicolons so you can the results.)

Cette question est clôturée.

Community Treasure Hunt

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

Start Hunting!

Translated by