Numerical errors of basic multiple

15 ビュー (過去 30 日間)
yifwang
yifwang 2019 年 8 月 26 日
コメント済み: yifwang 2019 年 8 月 26 日
When using matlab multiple calculation, some errors happen
a = 7*13e-6;
b = 6*13e-6;
the answer is
a = 9.09999999999999999e-5
b = 7.80000000000000000e-5
erroe happened at a but not at b;
So how this error happen and how * works? On what condition the error happen?
  2 件のコメント
KALYAN ACHARJYA
KALYAN ACHARJYA 2019 年 8 月 26 日
Error?
>> a =13e-6
a =
1.300000000000000e-05
>> 7*a
ans =
9.099999999999999e-05
yifwang
yifwang 2019 年 8 月 26 日
7*13e-6 should be exactly
9.100000000000000e-5
but not
9.099999999999999e-5
error

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

採用された回答

Ted Shultz
Ted Shultz 2019 年 8 月 26 日
These are floating point calculations. Not every number can be represented, and this rounding error can compound when you do math with these imperfect numbers.
"Floating-point error arises because real numbers cannot, in general, be accurately represented in a fixed space."
  1 件のコメント
Ted Shultz
Ted Shultz 2019 年 8 月 26 日
Here is a thread, with links to other threads that address this in more detail:

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

その他の回答 (0 件)

カテゴリ

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

製品


リリース

R2018b

Community Treasure Hunt

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

Start Hunting!

Translated by