BUG: Timestamp.round floating point error
- [ ] closes #xxxx
- [x] tests added / passed
- [x] Ensure all linting tests pass, see [here](https://pandas.pydata.org/pandas-docs/dev/development/contributing.html#code-standards) for how to run them
- [ ] whatsnew entry

xref #38964 analogous bug in Timedelta (separate PR upcoming)

```
ts = pd.Timestamp.max - pd.Timedelta(304)

>>> ts.ceil("s")
Timestamp('1677-09-21 00:12:43.290448384')
```
ok lgtm. can you add a whatsnew note.

too bad we can't get numpy to actually check for overflow for us. (or is it possible with https://numpy.org/doc/stable/reference/generated/numpy.seterr.html)? > too bad we can't get numpy to actually check for overflow for us. (or is it possible with https://numpy.org/doc/stable/reference/generated/numpy.seterr.html)?

AFAICT no.  https://github.com/numpy/numpy/issues/16352 thanks @jbrockmendel 