Java - always keep two decimal places even in zeroes

decimalformat, java

Solution

It is because you are using `Double.valueOf` on the `DecimalFormat` and it is converting the formatted number back to a double, therefore eliminating the trailing 0s.

To fix this, only use the `DecimalFormat` when you are displaying the value.

If you need `m_interest` calculations, keep it as a regular `double`.

Then when displaying, use:

System.out.print(df.format(m_interest));

Example:

DecimalFormat df = new DecimalFormat("#.00");
double m_interest = 1000;
System.out.print(df.format(m_interest)); // prints 1000.00

Problem

I am trying to keep two decimal places, even if then numbers are zeroes, using `DecimalFormatter`: ``` DecimalFormat df = new DecimalFormat("#.00"); m_interest = Double.valueOf(df.format(m_principal * m_interestRate)); m_newBalance = Double.valueOf(df.format(m_principal + m_interest - m_payment)); m_principal = Double.valueOf(df.format(m_newBalance)); ``` However for some values this gives two decimal places, and for others it doesnt. How can i fix this?

Original source

Related problems