How to store only 3 digits after the decimal point?
Afficher commentaires plus anciens
I'm working on R2016a and using round function to get red of the extra digits that I don't need on right side of the decimal point, so I did the following :
x=2.123456789123456789
y=round(x,3),
so I got:
y=2.123000000000000000
But I want it to be (stored) as:
y=2.123
Is what i'm doing write ?
Thank you so much.
Réponse acceptée
Plus de réponses (1)
James Tursa
le 21 Sep 2017
Modifié(e) : James Tursa
le 21 Sep 2017
This is just a display difference. The numbers are the same. E.g.,
>> format long
>> x = 2.123456789123456789
x =
2.123456789123457
>> y = round(x,3)
y =
2.123000000000000
>> z = 2.123
z =
2.123000000000000
>> y == z
ans =
1
>> format short g
>> y
y =
2.123
>> z
z =
2.123
If you want to display the number to three decimal places, e.g.,
>> fprintf(' %.3f\n',y)
2.123
>> fprintf(' %.3f\n',z)
2.123
But keep in mind that 2.123 cannot be represented exactly in IEEE double precision format. The nearest IEEE double precision number to 2.123, converted to an exact decimal representation, is
>> num2strexact(2.123)
ans =
2.12300000000000022026824808563105762004852294921875
Catégories
En savoir plus sur Logical dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!