title: Override behavior of ToString on double because of scientific notation
body: <p>Before anyone marks this question as a duplicate of <a href="https://stackoverflow.com/questions/14964737/double-tostring-no-scientific-notation">this</a> or <a href="https://stackoverflow.com/questions/20813631/how-to-avoid-scientific-notation-in-double">this</a> or <a href="https://stackoverflow.com/questions/1546113/double-to-string-conversion-without-scientific-notation">this</a>, please read the question as it's not quite the same.</p>
  
  <p>Recently one of my users noticed a bug in my application's interface where a textbox that is supposed to contain a number was containing scientific notation instead. Obviously I've done the research and found that <code>double.ToString()</code> returns scientific notation for some reason (see <a href="https://stackoverflow.com/questions/14964737/double-tostring-no-scientific-notation#comment21009580_14964737">here</a>).</p>
  
  <p>My problem now is that I need some way, without doing the following:</p>
  
  <pre><code>public static class Extensions
  {
      public static string AnExtensionMethodWithADifferentName(this double dbl)
      {
          //Is this enough zeros? Oh well I'll just come back and code
          // more if I need them...
          return dbl.ToString("0.00000000000000000000000"); 
      }
  }
  </code></pre>
  
  <p>that will override the default <code>ToString()</code> method of double. </p>
  
  <p>Why don't I just do this: <code>myDouble.ToString("0.00000");</code> in the one place I need it, you ask? Because it's not just one place. It's potentially thousands as this application has already been written under the assumption that <code>ToString()</code> will return the proper value.</p>
  
  <p>Even if I wanted to put an infinite number of zeros in some override/extension somewhere, I can't extend <code>double</code>'s <code>ToString()</code> method because it already exists, I can't override <code>ToString()</code> because I can't inherit from a sealed struct and making a wrapper for double for every property of the type in the whole application will generate one giant, unmanageable code smelly mess.</p>
  
  <p>So... what do I do? I want to change <code>ToString()</code>'s behavior to what the function name suggests.</p>