ENH: Add equivalence test for float in to_numeric() GH43693
- [x] closes #43693 
- [x] tests added / passed
- [x] Ensure all linting tests pass, see [here](https://pandas.pydata.org/pandas-docs/dev/development/contributing_codebase.html#pre-commit) for how to run them
- [x] whatsnew entry

This PR prevents issues where float64 arrays would be downcast to float32 arrays even if the values were out of range for float32. An equivalence check is performed to ensure all values are equal to 7 significant digits. If this fails, the original float64 is retained. This behavior is consistent with int where downcasting is not performed if the integer is out of bounds.

Pre Change:
```python
>>> pd.to_numeric(pd.Series([608202549.0]), downcast='float')
0    608202560.0
```
Post Change:
```python
>>> pd.to_numeric(pd.Series([608202549.0]), downcast='float')
0    608202549.0
```