I am trying to keep two decimal places, even if then numbers are zeroes, using DecimalFormatter:
DecimalFormatter
DecimalFormat df = new DecimalFormat(\"#.00\");
Use BigDecimal instead, which supports the formatting approach you seek.
This question details it: How to print formatted BigDecimal values?