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
Use str.format() on a number with ""{:e}" as str to format the number in scientific notation. To only include a certain number of digits after the decimal point, use "{:. Ne}" , where N is the desired number of digits.
Summary: Use the string literal syntax f"{number:. nf}" to suppress the scientific notation of a number to its floating-point representation.
Use a formatted string literal to print a float without scientific notation, e.g. print(f'{num:. 8f}') . You can use an expression in the f-string to print the float without scientific notation, with the specified number of decimal places.
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
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With