C++ : Implicit type conversion
<p>I am bit confused about implicit type conversion. Given the following program </p>

<pre><code>   float x = 4.23423451;
   double y = 4.23423451;

   float z = 101.9876;

   float res1 = x * z;
   float res2 = y * z;

   std::cout &lt;&lt; "res1 &amp; res2 " &lt;&lt; res1 &lt;&lt; "  &amp; " &lt;&lt; res2 &lt;&lt; std::endl;
   std::cout &lt;&lt; "equality " &lt;&lt; (res1 == res2) &lt;&lt; std::endl;
</code></pre>

<p>The output was</p>

<pre><code>   res1 &amp; res2 431.839  &amp; 431.839
   equality 1
</code></pre>

<p>My question is "Will the equality be always true for any value of x, y &amp; z (x = y) and also for any compiler?"</p>

<p>In </p>

<blockquote>
  <p>res2 = y * z;</p>
</blockquote>

<p>Will the variable "y" be type-casted to float or variable "z" be type-casted to double?</p>
