RoundingMode HALF_UP is not working properly
<p>From my understand, RoundingMode.HALF_UP uses our tradition style of rounding. However, it is not giving me the desired results:</p>

<p>I'm using DecimalFormat() with different parameters(#, #.#, ... etc) and inputting the double 3.5545</p>

<pre><code>// taken from Util    
public static void setRound(int a)      // Set rounding decimal places
{
    roundTo = a;

    String t = "#";
    if (roundTo &gt; 0)
    {
        t += ".";
        for (int u = 1; u &lt;= roundTo; u++)
            t += "#";
    }

    df = new DecimalFormat(t);
    df.setRoundingMode(RoundingMode.HALF_UP);
}

public static String round(double d)    // Rounds up answers to set place
{
    return df.format(d);
}

// taken from Testing class
 for (int a = 0; a &lt; 5; a++)
    {
    Util.setRound(a);
    System.out.println(Util.round(3.5545));
    }

// results
0 -&gt; 4              
1 -&gt; 3.6   
2 -&gt; 3.55   
3 -&gt; 3.554 *(I want 3.555)*  
4 -&gt; 3.5545
</code></pre>

<p>How would I be able to fix this issue (any number trailed by 5 rounds up)? 
Any help would be appreciated.</p>

<p>Thank you.</p>