title: Does one double promote every int in the equation to double?
body: <p>Does the presence of one floating-point data type (e.g. <code>double</code>) ensure that all +, -, *, /, %, etc math operations assume double operands?</p>
  
  <p>If the story is more complicated than that, is there a resource that describes these rules? Should I not ask such questions and always explicitly cast <code>int</code> to <code>double</code> when the result of the equation is <code>double</code>. Here are some equations I'm thinking about. I purposefully did not compile and run then on my system, since this is the type of thing that could be compiler dependent.</p>
  
  <pre><code>int a(1), b(2), c(3);
  double d(4.);
  double result1 = a + b/d + c; // equal to 4 or to 4.5?
  double result2 = (a + b)/d + c; // equal to 3 or to 3.75?    
  double result3 = a/b + d; // equal to 4 or to 4.5?
  </code></pre>