title: pandas.DataFrame.round() not truncating decimal values after desired number of places
body: <p>pandas.DataFrame.round() gives somewhat unpredictable output on the below data frame. Can anyone please help me understand what is happening here?</p>
  
  <pre><code>df = pd.DataFrame([(61.21, 69.32), (65.1938, .67)], columns=['A', 'B'], dtype='float32')
  df.round(2)
  </code></pre>
  
  <p>The above code outputs:</p>
  
  <pre><code>           A      B
  0  61.209999  69.32
  1  65.190002   0.67
  </code></pre>
  
  <p>Why does round(2) not truncate all but first 2 digits after decimal point? When I try the same with dtype='float64' it works and outputs below:</p>
  
  <pre><code>df.astype('float64').round(2) 
         A      B
  0  61.21  69.32
  1  65.19   0.67
  </code></pre>
  
  <p>Is there something about the values in the data frame? </p>
  
  <p>I don't want to format the output as string (round(2).applymap('{:.2f}'.format)) to get the desired number of decimals. I want to know why the columns are giving different number of digits after the decimal point.</p>
  
  <p>I am using pandas version '0.24.1'.</p>