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

 採用された回答

Fangjun Jiang
Fangjun Jiang 2011 年 9 月 20 日

0 投票

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

2 件のコメント

Jan
Jan 2011 年 9 月 20 日
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 2011 年 9 月 20 日
Thanks, Jan! That's even better to explain the problem!

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File Exchange で Data Acquisition Toolbox についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by