# Formatting of result values.

3 ビュー (過去 30 日間)
Jiapeng 2022 年 9 月 18 日

For example, x=0.0012345678.
How can I get x to be in the format 0.123457*10^(-2). There are six significant digits and if more than six decimal places, which are converted to standard format by rounding.
Thank you！

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

### 採用された回答

Star Strider 2022 年 9 月 18 日
That is not a format MATLAB will do automatically.
I wrote a utility function for my own use for such requirements —
x=0.0012345678;
lod = 1;
rfd = @(x,lod) [x*(10.^(-fix(log10(x)-lod+1))), fix(log10(x)-lod+1)]; % Anonymous Function Creating Reformatted Number
Out = sprintf('%.6fE%+d', rfd(x,lod)) % Character Vector With Formatted Output
Out = '0.123457E-2'
Experiment with it if necessary. MATLAB maintains full precision internally regardless of the way the numbers are formatted.
.

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

### その他の回答 (1 件)

John D'Errico 2022 年 9 月 18 日
You cannot write it in that form, at least not easily. Yes, you could write a formatting code. But you would need to write it, separating out the exponent, then building it as a string.
You CAN use an exponential format, like this:
format short e
x=0.0012345678
x =
1.2346e-03
But if you want that specific 10^-2 form, that will take more work.

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

### カテゴリ

Find more on Data Type Conversion in Help Center and File Exchange

### Community Treasure Hunt

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

Start Hunting!

Translated by