title: Can you help me to understand what "significant digits" means in floating point math?
body: <p>For what I'm learning, once I convert a floating point value to a decimal one, the "significant digits" I need are a fixed number (17 for double, for example). 17 totals: before and after decimal separator.</p>
  
  <p>So for example this code:</p>
  
  <pre><code>typedef std::numeric_limits&lt;double&gt; dbl;
  
  int main()
  {
      std::cout.precision(dbl::max_digits10);
      //std::cout &lt;&lt; std::fixed;    
  
      double value1 = 1.2345678912345678912345;
      double value2 = 123.45678912345678912345;
      double value3 = 123456789123.45678912345;
  
      std::cout &lt;&lt; value1 &lt;&lt; std::endl;
      std::cout &lt;&lt; value2 &lt;&lt; std::endl;
      std::cout &lt;&lt; value3 &lt;&lt; std::endl;
  }
  </code></pre>
  
  <p>will correctly "show me" 17 values:</p>
  
  <pre><code>1.2345678912345679
  123.45678912345679
  123456789123.45679
  </code></pre>
  
  <p>But if I increase precision for the <code>cout</code> (i.e. <code>std::cout.precision(100)</code>), I can see there are other numbers after the 17 range:</p>
  
  <pre><code>1.2345678912345678934769921397673897445201873779296875
  123.456789123456786683163954876363277435302734375
  123456789123.456787109375
  </code></pre>
  
  <p>Why should ignore them? They are stored within the variables/double as well, so they will affect the whole "math" later (division, multiplication, sum, and so on). </p>
  
  <p>What does it means "significant digits"? There is other...</p>