round-off issue?

1 回表示 (過去 30 日間)
Leor Greenberger
Leor Greenberger 2011 年 9 月 20 日
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 日
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 件)

カテゴリ

Help Center および File ExchangeLogical についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by