title: Using astype in Pandas does not give the expected result
body: <p>I'm trying to convert a float to int in a Pandas dataframe. I usually use <code>.astype('int64')</code> but, in this case, it is not working.
  This is the code I'm using:</p>
  <pre><code>import pandas as pd
  d = {'test': [1]}
  df = pd.DataFrame(columns= ['test'], data =d)
  
  df['test'] = 60590820065001969.0
  df['test'].astype('int64')
  </code></pre>
  <p>This is the result I get:</p>
  <pre><code>0    60590820065001968
  Name: test, dtype: int64
  </code></pre>
  <p>Please notice how those numbers are different (the float ends with 69 and the integer version ends with 68).</p>
  <p>If i try a smaller number, by removing the first 2 digits, then it works fine:</p>
  <pre><code>df['test'] = 590820065001969.0
  df['test'].astype('int64')
  </code></pre>
  <p>Gives me :</p>
  <pre><code>0    590820065001969
  Name: test, dtype: int64
  </code></pre>
  <p>Which makes me think it might have something to do with the number size, but I'm not sure what it is. Can anyone spot the problem here?
  By the way, I'm using Python 3.</p>