title: BigDecimal to_s does not match to_f
body: <p>Is the BigDecimal class broken? It seems like the following should never, ever occur:
  Note that a.to_f != a.to_s.to_f</p>
  
  <blockquote>
    <blockquote>
      <p>a.class
      => BigDecimal</p>
      
      <p>a.to_f
      => 18658.1072928</p>
      
      <p>a.to_s
      => "10865.81072928"</p>
      
      <p>b.class
      => BigDecimal</p>
      
      <p>b.to_f
      => 10000.0</p>
      
      <p>b.to_s
      => "10000.0"</p>
      
      <p>(a - b).to_f
      => 865.81072928</p>
      
      <p>a.to_f - b.to_f
      => 8658.1072928</p>
    </blockquote>
  </blockquote>
  
  <p>Any ideas as to what might be going wrong? We are running ruby 1.8.7p72 on our servers and 1.8.7p173 on our local machines.</p>