display.precision not honored for float-like values in notebook
see also #17280, #25917 and #25919

Note: complex numbers are covered by #25514 and #25745 for `to_string()`

#### Code Sample, a copy-pastable example if possible

```python
import pandas as pd
float_val = 0.55555555
complex_val = complex(float_val,float_val)
tuple_val= float_val,float_val
df = pd.DataFrame([float_val, complex_val, tuple_val])
pd.set_option('display.precision', 3)
df
```

<table border="1" class="dataframe">
  <thead>
    <tr style="text-align: right;">
      <th></th>
      <th>0</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th>0</th>
      <td>0.556</td>
    </tr>
    <tr>
      <th>1</th>
      <td>(0.55555555+0.55555555j)</td>
    </tr>
    <tr>
      <th>2</th>
      <td>(0.55555555, 0.55555555)</td>
    </tr>
  </tbody>
</table>

#### Problem description

not all the float values are displayed with a precision of 3.

#### Expected Output

<table border="1" class="dataframe">
  <thead>
    <tr style="text-align: right;">
      <th></th>
      <th>0</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th>0</th>
      <td>0.556</td>
    </tr>
    <tr>
      <th>1</th>
      <td>(0.556+0.556j)</td>
    </tr>
    <tr>
      <th>2</th>
      <td>(0.556, 0.556)</td>
    </tr>
  </tbody>
</table>

#### Output of ``pd.show_versions()``

<details>

[paste the output of ``pd.show_versions()`` here below this line]

</details>
