how to print E formated numbers.

4 vues (au cours des 30 derniers jours)
Pappu Murthy
Pappu Murthy le 8 Mar 2018
Commenté : Star Strider le 8 Mar 2018
I have numbers such as 0.1032E-02 (say) If I read this as x = 0.1032E-02 and save it to a text file using fopen, and fprintf fid = fopen('Testing.txt','wt'); fprintf(fid, '%15.5E\n',x) it always prints x as 1.032E-03 but I would like the 0 in front just as the way I assigned the value to x. How do i do it?
  2 commentaires
Stephen23
Stephen23 le 8 Mar 2018
Modifié(e) : Stephen23 le 8 Mar 2018
@Pappu Murthy: Numeric data classes do not store any formatting, so printing a number "just as the way I assigned the value to x" is not possible in general: a value will simply be displayed according to the fprintf specification. With that in mind: if you need to convert to numeric, do you always want a leading zero in the printed output?
Pappu Murthy
Pappu Murthy le 8 Mar 2018
Yes. I want the numbers printed as 0.0000E-nn format with leading zero. But fprintf does not let the leading zero.

Connectez-vous pour commenter.

Réponse acceptée

Star Strider
Star Strider le 8 Mar 2018
Try this little utility anonymous function I wrote a while back to solve this exact problem:
a = 0.1032E-02
expstr = @(x) [x*10.^floor(-log10(abs(x))) floor(log10(abs(x))+1)];
Result = sprintf('%.7fE%+03d', expstr(a))
Result =
'0.1032000E-02'
  5 commentaires
Pappu Murthy
Pappu Murthy le 8 Mar 2018
It worked like charm. I am going to use this now. Thanks for all the help.
Star Strider
Star Strider le 8 Mar 2018
As always, my (our) pleasure!

Connectez-vous pour commenter.

Plus de réponses (0)

Community Treasure Hunt

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

Start Hunting!

Translated by