ID : 106

viewed : 352

Tags : PythonPython String

99

Scientific notation is used for representing very large or small numbers in a compact and understandable way. Such notation is also used in programming; for example, 6000000 can be represented as `6E+6`

. Similarly, `0.000006`

can be represented as `6E-6`

.

In this tutorial, we will discuss how to use such scientific notations in Python.

`format()`

Function to Represent Values in Scientific Notation in PythonThe `format`

function is used for formatting strings in a specific format. We can use this function to convert large or small float values to their respective exponential format as shown below:

`no1 = float(5800000.00000) no2 = float(0.0000058) print(format(no1,'.1E')) print(format(no2,'.1E')) `

Output:

`5.8E+06 5.8E-06 `

Here `.1E`

is the specified formatting pattern. `E`

indicates exponential notation to print the value in scientific notation, and `.1`

specifies that there has to be one digit after the decimal.

`fstrings`

to Represent Values in Scientific Notation in PythonIn Python 3.6 and up, we can use `fstrings`

to format strings. This method is considered to be more precise and less prone to errors. It improves the readability of the code compared to the traditional `format()`

function. `fstrings`

can help in representing, as shown below.

`no1 = float(5800000.00000) no2 = float(0.0000058) print(f"{no1:.1E}") print(f"{no2:.1E}") `

Output:

`5.8E+06 5.8E-06 `

Notice that the format pattern is the same as the above method.

`numpy.format_float_scientific()`

Function to Represent Values in Scientific NotationThe `NumPy`

module in Python has a function `format_float_scientific()`

that can be used to format a floating value to its scientific notation.

We can use the `precision`

parameter to specify the total decimal digits and the `exp_digits`

to tell how many digits are needed in the exponential notation. Other parameters available are `sign`

, `unique`

, and `trim`

, which offer more customizations.

The final result returned from this function is a string.

`import numpy as np no1 = float(5800000.00000) no2 = float(0.0000058) print(np.format_float_scientific(no1, precision = 1, exp_digits=3)) print(np.format_float_scientific(no2, precision = 2, exp_digits=3)) `

Output:

`5.8e+006 5.8e-006 `