title: pandas.DataFrame.round() not accepting pd.NA or pd.NAN
body: <p>pandas version: 1.2</p>
  <p>I have a dataframe that columns as 'float64' with null values represented as pd.NAN. Is there way to round without converting to string then decimal:</p>
  <pre><code>df = pd.DataFrame([(.21, .3212), (.01, .61237), (.66123, .03), (.21, .18),(pd.NA, .18)],
                    columns=['dogs', 'cats'])
  df
        dogs     cats
  0     0.21  0.32120
  1     0.01  0.61237
  2  0.66123  0.03000
  3     0.21  0.18000
  4     &lt;NA&gt;  0.18000
  </code></pre>
  <p>Here is what I wanted to do, but it is erroring:</p>
  <pre><code>df['dogs'] = df['dogs'].round(2)
  </code></pre>
  <blockquote>
  <p>TypeError: float() argument must be a string or a number, not 'NAType'</p>
  </blockquote>
  <p>Here is another way I tried but this silently fails and no conversion occurs:</p>
  <pre><code>tn.round({'dogs': 1})
  
        dogs     cats
  0     0.21  0.32120
  1     0.01  0.61237
  2  0.66123  0.03000
  3     0.21  0.18000
  4     &lt;NA&gt;  0.18000
  </code></pre>