Difference Subtracting Double Precision from Single Precision

14 vues (au cours des 30 derniers jours)
Ed
Ed le 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

Réponse acceptée

Matt Fig
Matt Fig le 19 Sep 2012
Modifié(e) : Matt Fig le 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:

Plus de réponses (0)

Catégories

En savoir plus sur Data Type Conversion dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by