title: Rounding of very large floats in Java
body: <p><strong>Java</strong>:</p>
  
  <pre><code>float big = (float) 1e12;
  float ulp = Math.ulp(big);
  
  float result = (big + 2/3*ulp) - big;
  </code></pre>
  
  <p><code>result</code> is <code>0.0</code>, while I was expecting <code>ulp</code> (<code>65536.0</code>). Can somebody explain why?</p>