format long addition problem

2 ビュー (過去 30 日間)
AR
AR 2013 年 4 月 1 日
with format long
7.5e-6+1e-7
ans =
7.600000000000000e-06
>> 7.6e-6+1e-7
ans =
7.700000000000001e-06
**why not 7.6e-6+1e-7
ans = 7.700000000000000e-06**
and how can i avoid this 0.000000000000001e-06???

回答 (1 件)

Walter Roberson
Walter Roberson 2013 年 4 月 1 日
  2 件のコメント
AR
AR 2013 年 4 月 1 日
編集済み: Walter Roberson 2013 年 4 月 1 日
how can i convert 7.700000000000001e-06 to 7.7e-06????
Walter Roberson
Walter Roberson 2013 年 4 月 1 日
You can use the symbolic toolbox, or you can use the fixed-point toolbox, or you can write your own Class for decimal arithmetic, or you can use a totally different tool that already implements decimal arithmetic.
There is no exact representation for 7.7e-06 in IEEE 754 binary floating point such as is used by MATLAB (and which is an international standard for numeric representation.) The closest you can get is
7.70000000000000081623076353398715809817076660692691802978515625e-06

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

カテゴリ

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