# How to show + sign in scientific notation.

I want to convert an integer number into scientific number format with a plus sign after E.
e.g. I want to print 5 as .50000E+01 . Is this possible in Java. I have given below the code snippet I used in my program but with that it doesn't show a + sign. Can anybody help to solve this problem ?

int myNumber = 5;
String myFormat = ".00000E00";
NumberFormat nf = NumberFormat.getInstance();
DecimalFormat df = (DecimalFormat)nf;
df.applyPattern(myFormat);
System.out.println( "[" + myNumber +"]: " + df.format(myNumber) );
###### Who is Participating?

Commented:
Try this

int myNumber = 5;
String myFormat = ".00000E00";
DecimalFormat df = new DecimalFormat(myFormat);
df.setPositivePrefix("+");
System.out.println( "[" + myNumber +"]: " + df.format(myNumber) );

It prints out:     [5]: +.50000E+01
0

Author Commented:
Thanks, but it printed a + in the beginning as well. Is there any way to get rid of that.
0

Commented:

int myNumber = 5;
String myFormat = ".00000E00";
DecimalFormat df = new DecimalFormat(myFormat);
df.setPositivePrefix("+");

String notation = df.format(myNumber);
notation = notation.startsWith("+") ? notation.substring(1) : notation ;

System.out.println( "[" + myNumber +"]: " + notation );

0

Author Commented:
:-), actually I was wondering whether there is any API available for formatting rather than a workaround.

Thanks for helping.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.