title: why new numbers appear at the end of double variable?
body: <p>Here is my code:</p>
  <pre><code>#include &lt;stdio.h&gt;
  #include &lt;math.h&gt;
  
  double Mul(double X,double Y,double Z)
  {
      Y=Y*pow(10,6);
      Y=Y+Z;
      X=(X*pow(10,12))+Y;
      //X=114360000000000000+117239051145;
      //X=Y;
      
      return X;
  }
  
  int main()
  {
      double Hello=Mul(114360,117239,511432);
      printf(&quot;%f&quot;,Hello);
  
      return 0;
  }
  
  </code></pre>
  <p>The output should be &quot;114360117239511432&quot; but I got &quot;114360117239511424&quot; I need to know why 511432 converts to 511424? and How can I solve this problem?</p>