title: Does exist two numbers that multiplied (or divided) each other introduce error?
body: <p>Here's the <a href="http://coliru.stacked-crooked.com/a/3a146a301cf94ff5" rel="nofollow noreferrer">bank</a> of tests I'm doing, learning how <code>FP</code> basic ops (<code>+</code>, <code>-</code>, <code>*</code>, <code>/</code>) would introduce errors:</p>
  
  <pre><code>#include &lt;iostream&gt;
  #include &lt;math.h&gt;
  
  int main() {
      std::cout.precision(100);
  
      double a = 0.499999999999999944488848768742172978818416595458984375;
  
      double original = 47.9;
      double target = original * a;    
      double back = target / a;
  
      std::cout &lt;&lt;  original &lt;&lt; std::endl;
      std::cout &lt;&lt;  back &lt;&lt; std::endl;
      std::cout &lt;&lt;  fabs(original - back) &lt;&lt; std::endl; // its always 0.0 for the test I did
  }
  </code></pre>
  
  <p>Can you show to me two values (<code>original</code> and <code>a</code>) that, once <code>*</code> (or <code>/</code>), due to <code>FP</code> math, introduce error?</p>
  
  <p>And if they exist, is it possible to establish if that error is introduced by <code>*</code> or <code>/</code>? And how? (since you need both for coming back to the value; <code>80 bit</code>?)</p>
  
  <p>With <code>+</code> is easy (just add <code>0.499999999999999944488848768742172978818416595458984375</code> to <code>0.5</code>, and you get <code>1.0</code>, as for <code>0.5 + 0.5</code>).</p>
  
  <p>But I'm not able to do the same with <code>*</code> or <code>/</code>.</p>