Java: Convert Exponential form to Decimal number format in Java Posted: 10 Jan 2011 08:13 AM PST 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 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 import java.text.DecimalFormat; //.. //.. Double a = 2.85d / 10000; DecimalFormat formatter = new DecimalFormat("0.0000"); System.out.println(formatter .format(a)); Result: 0.0003 Happy converting :) |