MATLAB Answers

How to format output to exponential notation

130 views (last 30 days)
Sean St Cyr
Sean St Cyr on 29 Jun 2020
Commented: Tommy on 29 Jun 2020
%Additional Data
newName=input('Enter name of new component: ','s');
Name{length(Name)+1}=newName; %adding new component
newCur=input('Enter Current values corresponding to the 5 voltages for the new component in mA:');
CurData=[CurData;newCur]; %appending row of current values for new component
MaxCur=max(max(CurData(2:end,:)));
[R,C]=find(CurData(2:end,:)==MaxCur);
fprintf('Maximum Current = %d mA\n',MaxCur)
fprintf('At voltage = %.3f nV\n',CurData(1,C)*10^9) %%THIS LINE OF CODE IS THE LINE THAT I NEED TO LOOK LIKE X.XXE10
fprintf('\t For %s\n',Name{choice})
Hello! I am trying to format an answer that my code gives out at exponential notation and the line that is labeled is the line of code that i need to edit for it to do so? I have this so far which is giving me the entire number to 10^9 and i need it at X.XXE10. Any suggestions?

  2 Comments

Walter Roberson
Walter Roberson on 29 Jun 2020
Do not use %d for floating point numbers: %d is for integers only.
Sean St Cyr
Sean St Cyr on 29 Jun 2020
I apologize, i forgot to label the line of code, its now labeled, i dont have a %d in that one, it gives me for instance instead of 1.5E10 it gives 15000000000.000

Sign in to comment.

Accepted Answer

Tommy
Tommy on 29 Jun 2020
Edited: Tommy on 29 Jun 2020
This should work:
fprintf('At voltage = %.2E nV\n',CurData(1,C)*10^9)
If you don't want the plus sign:
val = CurData(1,C)*10^9;
e = floor(log10(val));
b = val / 10^e;
fprintf('At voltage = %.2fE%02d nV\n', b, e);

More Answers (0)

Community Treasure Hunt

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

Start Hunting!

Translated by