set ipython's default scientific notation threshold

Question:

How can I modify the point at which python decides to print in scientific notation?

E.g. I’d like everything > 1e4 or < 1e-4 to be printed in scientific notation.

Good:

In [11]: 5e20
Out[11]: 5e+20

Bad:

In [12]: 5e10
Out[12]: 50000000000.0
Asked By: DilithiumMatrix

||

Answers:

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__.

Answered By: kirelagin

In IPython you can use

%precision %.4g

this will print floating point values who’s absolute value is < 1e-4 or >= 1e4 in scientific notation.

You can find more information about the %precision command in the IPython API Docs.
For string formatting options have a look at the Python Docs

Answered By: zabbarob