I discovered a potential bug and I want to report it:
Matlab R2018a windows 10
alfa=-0.0052+(61-1)*0.0001;
reasoning this is 0.0060-0.0052=0.0008=8e-04
so:
alfa2=8e-04;
isequal(alfa,alfa2)
ans
0
if you open alfa variable you can see:
8.000000000000004e-04
in fact if you round alfa:
alfa3=round(alfa,10);
isequal(alfa2,alfa3)
ans
1
That's all Thanks

1 件のコメント

Bruno Luong
Bruno Luong 2018 年 11 月 29 日
Welcome to the club, you are one more person who confuses about finite precision floating point calculation.

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

 採用された回答

madhan ravi
madhan ravi 2018 年 11 月 29 日
編集済み: madhan ravi 2018 年 11 月 29 日

0 投票

It‘s called floating point comparison just search with the tag floating-point in this forum you will find lot of reasons
abs(alfa-alfa2)<1e-04

その他の回答 (0 件)

カテゴリ

ヘルプ センター および File ExchangeData Types についてさらに検索

製品

質問済み:

2018 年 11 月 29 日

編集済み:

2018 年 11 月 29 日

Community Treasure Hunt

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

Start Hunting!

Translated by