convert large number to smaller

15 ビュー (過去 30 日間)
Lieke Numan
Lieke Numan 2019 年 5 月 10 日
コメント済み: Star Strider 2019 年 5 月 10 日
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 件のコメント
KALYAN ACHARJYA
KALYAN ACHARJYA 2019 年 5 月 10 日
編集済み: KALYAN ACHARJYA 2019 年 5 月 10 日
Input=3.2692e+17
Disired Result=32.6
You want convert or extract?

サインインしてコメントする。

採用された回答

Star Strider
Star Strider 2019 年 5 月 10 日
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 件のコメント
Lieke Numan
Lieke Numan 2019 年 5 月 10 日
Thanks a lot!
Star Strider
Star Strider 2019 年 5 月 10 日
As always, my pleasure!

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeData Type Conversion についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by