I want to reduce accuracy and precision to 3 digits.

5 visualizaciones (últimos 30 días)
meh hadi
meh hadi el 25 de Abr. de 2018
Comentada: Walter Roberson el 2 de Mayo de 2018
for example I want to a=2.18+0.139; with 3 digits answer must be 2.31. is any way to do this?
  3 comentarios
meh hadi
meh hadi el 25 de Abr. de 2018
in further calculatins
Tom Wenk
Tom Wenk el 25 de Abr. de 2018
Editada: Tom Wenk el 26 de Abr. de 2018
Then I think you have to use the symbolic toolbox like Walter Robinson stated.
But why do you want to change 2.319 to 2.31 rather than 2.32? If you use this value for further calculations you should round in my opinion..

Iniciar sesión para comentar.

Respuestas (3)

Praveen Iyyappan Valsala
Praveen Iyyappan Valsala el 25 de Abr. de 2018
I don't know any inbulit function which can do that. But, you can try something like below
trun=@(num,Ndigits)floor(a*10^Ndigits)/10^Ndigits;
trun_a=trun(a,2);

Walter Roberson
Walter Roberson el 25 de Abr. de 2018
No, there is no built-in way.
You can use the symbolic toolbox with digits set to 3, but that will round rather than truncate.
  1 comentario
Stephen23
Stephen23 el 26 de Abr. de 2018
Note that setting the digits does not mean that calculations will be performed with exactly that precision, because calculations may use guard digits.

Iniciar sesión para comentar.


Tom Wenk
Tom Wenk el 25 de Abr. de 2018
Like Walter Roberson stated, I think you have to use the symbolic toolbox for that.
Maybe this function from the toolbox can help you: https://de.mathworks.com/help/symbolic/digits.html
  3 comentarios
Tom Wenk
Tom Wenk el 2 de Mayo de 2018
I see, but is there an other way to do it then?
Walter Roberson
Walter Roberson el 2 de Mayo de 2018
For addition: multiply the original values by 100, take floor() or fix(). Do the addition. Divide the result by 100.

Iniciar sesión para comentar.

Community Treasure Hunt

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

Start Hunting!

Translated by