Azzera filtri
Azzera filtri

While loop condition to execute until certain number of decimal places of accuracy is achieved

18 visualizzazioni (ultimi 30 giorni)
Hi so I am trying to run something in a while loop until a certain number of decimal place is achieve:
so lets say
a = 0.003
b = 0.02
and the absolute difference between them is:
difference = abs(a-b)
and I want to increment a whilst leaving b constant until I get an Accuracy of 3 decimal places for the difference between them.
How would I go about doing this?
Thanks.
  2 Commenti
Liam Ryan
Liam Ryan il 12 Ott 2019
Meaning do it until the variable difference has an accurraccy of 3 decimal places.
So for instance:
if you start of with a = 0.003
and b = 0.2
the difference is: abs(0.003-0.2) = 0.1970.
But I want the difference between them to be really small, so I want the difference to be:
0.000AAAAA
where those AAAAA represents the non zero numbers.
So for 4 decimal place accuracy: want:
0.0000AAAA
Thanks

Accedi per commentare.

Risposte (1)

David Hill
David Hill il 12 Ott 2019
Increment by half the difference or whatever you want.
d=1;
while d>.001
a=a+(a-b)/2;
d=abs(a-b);
end
  2 Commenti
Image Analyst
Image Analyst il 12 Ott 2019
3. It will keep going until the first 3 decimal places of the difference are 0 and there is only a non-zero difference in the 4th or later decimal places.

Accedi per commentare.

Categorie

Scopri di più su Loops and Conditional Statements in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by