convert large number to smaller
8 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
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
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?
Réponse acceptée
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
Plus de réponses (0)
Voir également
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!