title: Rounding BigDecimal with the setScale() method: unexpected result
body: <p>To round a number I use the following code:</p>
  
  <pre><code>public static roundBd(BigDecimal bd){
    BigDecimal result1 = bd.setScale(0, RoundingMode.HALF_UP);
    return result1;
  }
  </code></pre>
  
  <ul>
  <li>Input 1.50 --> Output 2  </li>
  <li>Input 1.499 --> Output 1</li>
  </ul>
  
  <p>The first result is ok for me, but the second is not what I expected.
  Even for 1.499 I'd like to have in output 2. (In details: first I'd like to round 1.499 to 1.50 then to 1.5 and finally to 2)</p>
  
  <p>But....</p>
  
  <pre><code>BigDecimal bd = new BigDecimal("1.499");  // I'd like to round it to 2
  BigDecimal result1 = bd.setScale(2, RoundingMode.HALF_UP); // result1 == 1.50
  BigDecimal result2 = bd.setScale(1, RoundingMode.HALF_UP); // result2 == 1.5
  BigDecimal result3 = bd.setScale(0, RoundingMode.HALF_UP); // result3 == 1
  </code></pre>