Convert Exponential form to Decimal number format in Java

While working with Doubles and Long numbers in Java you will see that most of the value are displayed in Exponential form.

For example : In following we are multiplying 2.35 with 10000 and the result is printed.


//Division example
Double a = 2.85d / 10000;
System.out.println("1) "+ a.doubleValue());

//Multiplication example
a = 2.85d * 100000000;
System.out.println("2) "+ a.doubleValue());

Result :
1)  2.85E-4
2)  2.85E8

Thus you can see the result is printed in exponential format. Now you may want to display the result in pure decimal format like: 0.000285 or 285000000. You can do this simply by using class java.math.BigDecimal. In following example we are using BigDecimal.valueOf() to convert the Double value to BigDecimal and than .toPlainString() to convert it into plain decimal string.


import java.math.BigDecimal;
//..
//..
//Division example

Double a = 2.85d / 10000;
System.out.println("1) "+ BigDecimal.valueOf(a).toPlainString());

//Multiplication example
a = 2.85d * 100000000;
System.out.println("2) "+ BigDecimal.valueOf(a).toPlainString());

Result :
1)  0.000285
2)  285000000

The only disadvantage of the above method is that it generates lonnnnggg strings of number. You may want to restrict the value and round off the number to 5 or 6 decimal point. For this you can use java.text.DecimalFormat class. In following example we are rounding off the number to 4 decimal point and printing the output.

import java.text.DecimalFormat;
//..
//..
Double a = 2.85d / 10000;
DecimalFormat formatter = new DecimalFormat("0.0000");
System.out.println(formatter .format(a));

Result:
0.0003
About these ads

About rikinpanchal
hi i am Rikin

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.

%d bloggers like this: