Exponential precision of power engineering format

8 ビュー (過去 30 日間)
Leandro de Oliveira
Leandro de Oliveira 2018 年 4 月 23 日
回答済み: Harry Dymond 2020 年 5 月 31 日
Hello guys! I have the number 143903542.580052, by default matlab prints 1.439035e+08 but I want to print 143.9035e+06, I've tried so many matlab help links but nothing to do. Is there a way?

回答 (2 件)

Star Strider
Star Strider 2018 年 4 月 23 日
For Command Window and ‘tooltip’ formatting, use:
format short eng
format long eng
For printed output (using fprintf or sprintf), I wrote a little utility anonymous function for my own use to do that:
engntn = @(x) [x*10.^(-3*floor(log10(abs(x))/3)) 3*floor(log10(abs(x))/3)]; % Engineering Notation Mantissa & Exponent
Result2 = sprintf('%.4fE%+04d', engntn(Q1))
for example:
Q1 =
Result2 =
  2 件のコメント
Star Strider
Star Strider 2018 年 4 月 23 日

My pleasure.

If my Answer helped you solve your problem, please Accept it!


Harry Dymond
Harry Dymond 2020 年 5 月 31 日
My FEX submission num2eng will do this for printed output. It handles edge cases such as Inf and NaN inputs, has extensive formatting control for the output, and offers the option of SI prefixes instead of engineering notation.


Find more on Entering Commands 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