Difference Subtracting Double Precision from Single Precision

9 Ansichten (letzte 30 Tage)
Ed
Ed am 19 Sep. 2012
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

Akzeptierte Antwort

Matt Fig
Matt Fig am 19 Sep. 2012
Bearbeitet: Matt Fig am 20 Sep. 2012
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:

Weitere Antworten (0)

Kategorien

Mehr zu Data Type Conversion finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by