title: Float number formatting issue
body: <p>i've noticed a rounding issue that occurs when i format a value to currency -- the decimal value changes once i pass a certain thershold.</p>
  
  <p>here are 3 samples - the first one succeeds but the other 2 don't as the initial value is increased.</p>
  
  <p>1)</p>
  
  <pre><code>float value = 10000.25;
  
  value_as_string = value .ToString( "0,0.00", CultureInfo.InvariantCulture );
  
  --&gt; "10000.25";  // great
  </code></pre>
  
  <p>2)</p>
  
  <pre><code>float value = 100000.25;
  
  value_as_string = value .ToString( "0,0.00", CultureInfo.InvariantCulture );
  
  --&gt; "100,000.20"  // why 20 cents?
  </code></pre>
  
  <p>3)</p>
  
  <pre><code>float value = 1000000.25;
  
  value_as_string = value .ToString( "0,0.00", CultureInfo.InvariantCulture );
  
  --&gt; "1,000,000.00"  // where did my 25 cents go?
  </code></pre>
  
  <p>please let me know if there's a work around to this.  thanks.</p>