Actually it has nothing to do with IPython as it simply calls __str__. Sadly, float, being a built-in type, is implemented in C and you can't monkeypatch C types. So your only options are modifying __str__ implementation in cpython or patching IPython to be smarter than just calling __str__.