format long addition problem

1 次查看(过去 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 CenterFile Exchange 中查找有关 Matrix Indexing 的更多信息

产品

Community Treasure Hunt

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

Start Hunting!

Translated by