Effacer les filtres
Effacer les filtres

convert large number to smaller

8 vues (au cours des 30 derniers jours)
Lieke Numan
Lieke Numan le 10 Mai 2019
Commenté : Star Strider le 10 Mai 2019
I have a large array with numbers like these:
3.2692e+17
However, I want to extraxt the first three numbers, as I am interested in the 32.6 (or 32.7 if rounded). Some numbers are 3.2692e+16 for example, so dividing by e+16 is not working. What is the easiest way to do this?
  1 commentaire
KALYAN ACHARJYA
KALYAN ACHARJYA le 10 Mai 2019
Modifié(e) : KALYAN ACHARJYA le 10 Mai 2019
Input=3.2692e+17
Disired Result=32.6
You want convert or extract?

Connectez-vous pour commenter.

Réponse acceptée

Star Strider
Star Strider le 10 Mai 2019
One approach:
f = @(x) round(x.*10.^floor(1-log10(abs(x))),2);
producing:
x = [3.2692e+17; 3.2692e+16; 4.2516E+8];
Result = f(x)
Result =
3.27
3.27
4.25
Change the last argument to the round function to change the number of decimal places the function returns.
  2 commentaires
Lieke Numan
Lieke Numan le 10 Mai 2019
Thanks a lot!
Star Strider
Star Strider le 10 Mai 2019
As always, my pleasure!

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Data Type Conversion dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by