Find the precision of a value
Afficher commentaires plus anciens
Hello,
Is there a function in matlab that returns the precision of a number? for example, if I have a number 5.34 i want it to return 0.01, if I have a number 4 I want it to return 1 etc..
Thanks in advance for your answers,
2 commentaires
Adam
le 4 Juil 2017
Given that many double-precision numbers cannot be represented to an exact level of accuracy this would be problematic. e.g.
>> a = 5.34
a =
5.34
>> sprintf( '%0.20f', a )
ans =
'5.33999999999999990000'
You would want this to return 0.01 which may be reasonable, but actually the precision (to use your term) of the number is way smaller.
José-Luis
le 4 Juil 2017
Your question might make sense if your number is stored as a string, which your using the fprintf tag suggests.
Réponse acceptée
Plus de réponses (2)
José-Luis
le 4 Juil 2017
Just in case your number is stored as a string:
bla = '5.14';
result = strsplit(bla,'.');
result = numel(result{2})
There are better (faster) ways to do this, but coffee calls.
2 commentaires
What about:
bla = '534000';
bla = '0.000045';
bla = '2463.00000';
José-Luis
le 4 Juil 2017
Then a regex() could work.
James Tursa
le 5 Juil 2017
Modifié(e) : Stephen23
le 26 Sep 2017
1 vote
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!