I can't figure out why the floor wont come to 1752?
>> 3.501/40*20*10^3+1.5
ans =
1.752000000000000e+003
>> floor(ans)
ans =
1751

 Réponse acceptée

Fangjun Jiang
Fangjun Jiang le 20 Sep 2011

0 votes

Rounding error caused by floating point calculation.
>> 3.501/40*20*10
ans =
17.504999999999995

2 commentaires

Jan
Jan le 20 Sep 2011
sprintf('%.13f', 3.501/40*20*10^3+1.5)
>> 1751.9999999999998
sprintf('%.12f', 3.501/40*20*10^3+1.5)
>> 1752.000000000000
Fangjun Jiang
Fangjun Jiang le 20 Sep 2011
Thanks, Jan! That's even better to explain the problem!

Connectez-vous pour commenter.

Plus de réponses (0)

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by