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)

Catégories

En savoir plus sur Data Acquisition Toolbox dans Centre d'aide et File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by