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.
Result:
Result:
Result:
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()); |
1) 2.85E-4 2) 2.85E8Thus 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()); |
1) 0.000285 2) 285000000The 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)); |
0.0003
No comments:
Post a Comment