Find the precision of a value
Mostrar comentarios más antiguos
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 comentarios
Adam
el 4 de Jul. de 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
el 4 de Jul. de 2017
Your question might make sense if your number is stored as a string, which your using the fprintf tag suggests.
Respuesta aceptada
Más respuestas (2)
José-Luis
el 4 de Jul. de 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 comentarios
What about:
bla = '534000';
bla = '0.000045';
bla = '2463.00000';
José-Luis
el 4 de Jul. de 2017
Then a regex() could work.
James Tursa
el 5 de Jul. de 2017
Editada: Stephen23
el 26 de Sept. de 2017
1 voto
Categorías
Más información sobre Logical en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!