title: Oracle Number Rouding Issue
body: <p>We need to <strong>Round Half-UP</strong> the following NUMBER:</p>
  
  <pre><code>28.854623
  </code></pre>
  
  <p>So, the 'expected' steps are:</p>
  
  <pre><code>1) 28.854623
  2) 28.85462
  3) 28.8546
  4) 28.855
  5) 28.86
  </code></pre>
  
  <p>But, the result from the ROUND function appears to be wrong:</p>
  
  <pre><code>SELECT ROUND(28.854623, 2) FROM DUAL;
  Result&gt; 28.85
  </code></pre>
  
  <p>If we execute with 3 decimals places, the result is as expected:</p>
  
  <pre><code>SELECT ROUND(28.854623, 3) FROM DUAL;
  Result&gt; 28.855
  </code></pre>
  
  <p>If we ROUND to 3 places, and then to 2 places, the results are also the expected:</p>
  
  <pre><code>SELECT ROUND (ROUND (28.854623, 3), 2) FROM DUAL
  Result&gt; 28.86
  </code></pre>
  
  <p>Could anybody explains me why this behavior? Isn't the ROUND function making a TRUNC on the (N+1) Decimal place and then, Round the result, something like this:</p>
  
  <pre><code>ROUND(TRUNC(VALUE, N+1), N)
  </code></pre>
  
  <p>Thanks!</p>