title: casting a float number into int number will result to invalid int
body: <p>I write below code:</p>
  
  <pre><code> int vat = (int)(invoice.total * 0.08f);
  </code></pre>
  
  <p>assume invoice.total = 36000. then <code>vat</code> must be 2880 but is 2879!
  I changed my code to</p>
  
  <pre><code>float v = invoice.total * 0.08f;
  int vat = (int)v;
  </code></pre>
  
  <p>Now <code>vat</code> has correct value (2880).</p>
  
  <p>I wonder if <code>()</code> has more priority or not! and also float is exact 2880.0 not a little less, so no rounding must happen!</p>