Difference Subtracting Double Precision from Single Precision

Can you explain the results for the lines below
a=99999999; b=single(a); b-a
1
a=20000001; b=single(a); b-a
-1

 採用された回答

Matt Fig
Matt Fig 2012 年 9 月 19 日
編集済み: Matt Fig 2012 年 9 月 20 日

0 投票

Yes, have a look at
E = eps(b)
When you convert to single you are going to get the nearest single value to a within E. To see what you are dealing with, look at this:
a = (999999999-32):(999999999+34); b = single(a);
fprintf('%10.0f %10.0f \n',[a;double(b)])
Now when you do
c = b-a
MATLAB does the equivalent of this:
c2 = single(double(b)-a)
Also have a look at this:

その他の回答 (0 件)

カテゴリ

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

質問済み:

Ed
2012 年 9 月 19 日

Community Treasure Hunt

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

Start Hunting!

Translated by