Question: When you have a big double: 1000000000D the result gets compressed into 1.0E8, **how to make it print out 1000000000 and not 1.0E8.**

Note: happens with 10000000000.10 too.

To solve, simply use **BigDecimal** or DecimalFormat, using DecimalFormat you can no longer edit the amount because it's now a string, but using BigDecimal is going to slow down you program.

Answer: 
Example of using [BigDecimal](http://docs.oracle.com/javase/7/docs/api/java/math/BigDecimal.html)

```
    BigDecimal bd = new BigDecimal(1000000000d, new MathContext(0));
    System.out.println(bd);

```

or [DecimalFormat](http://docs.oracle.com/javase/7/docs/api/java/text/DecimalFormat.html)

```
    DecimalFormat df = new DecimalFormat("#");
    System.out.println(df.format(10000000000000000000.0));

```
You can use formatting flag as described in this [page](https://docs.oracle.com/javase/tutorial/java/data/numberformat.html)

```
double num = 1000000000D;
System.out.format("%10.2f", num);   // --> 1000000000.00

```