Python 中的科學計數法

Manav Narula 2023年1月30日
  1. 在 Python 中使用 format() 函式來實現科學計數法
  2. 在 Python 中使用 fstrings 來表示科學記數法中的值
  3. 使用 numpy.format_float_scientific() 函式來表示科學符號中的數值
Python 中的科學計數法

科學記號用於以緊湊和易懂的方式表示非常大或小的數字。這種符號也用於程式設計;例如,6000000 可以表示為 6E+6。同樣,0.000006 也可以表示為 6E-6

在本教程中,我們將討論如何在 Python 中使用這種科學計數法。

在 Python 中使用 format() 函式來實現科學計數法

格式函式用於將字串按特定格式進行格式化。我們可以使用這個函式將大的或小的浮動值轉換為各自的指數格式,如下圖所示。

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

輸出:

5.8E+06
5.8E-06

這裡 .1E 是指定的格式模式。E 表示用科學記數法列印數值,.1 指定小數點後必須有一個數字。

在 Python 中使用 fstrings 來表示科學記數法中的值

在 Python 3.6 及以上版本中,我們可以使用 fstrings 來格式化字串。這種方法被認為更精確,更不容易出錯。與傳統的 format() 函式相比,它提高了程式碼的可讀性。fstrings 可以幫助表示,如下所示。

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

輸出:

5.8E+06
5.8E-06

請注意,格式模式與上述方法相同。

使用 numpy.format_float_scientific() 函式來表示科學符號中的數值

Python 中的 NumPy 模組有一個函式 format_float_scientific(),它可以用來將一個浮點數格式化為其科學符號。

我們可以使用 precision 引數來指定總的小數位數,使用 exp_digits 來告訴指數符號中需要多少位數。其他可用的引數還有 signuniquetrim,這些引數提供了更多的自定義功能。

該函式返回的最終結果是一個字串。

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))

輸出:

5.8e+006
5.8e-006
作者: Manav Narula
Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn

相關文章 - Python String