title: Differences between using variable and using direct number in C language
body: <p>I have such a program</p>
  <pre class="lang-c prettyprint-override"><code>int a = 100;
  float b = 1.05;
  printf(&quot;%f\n&quot;, a * b);
  printf(&quot;%f\n&quot;, 100 * 1.05);
  </code></pre>
  <p>Its output looks like this:</p>
  <pre><code>104.999992
  105.000000
  </code></pre>
  <p>I understand that `104.99992' is due to floating-point precision issues. But why does the use of direct numbers not result in a loss of accuracy?</p>