在 Python 中將浮點數格式化為字串

Ankur Baral 2023年1月30日 2021年7月12日
  1. 使用格式規範和 format() 方法將浮點數格式化為固定寬度
  2. 將列表中的浮點數格式化為固定寬度
  3. 使用 Python 中的 % 運算子格式化浮點數以固定寬度
  4. 使用 Python 中的 round() 函式將浮點數格式化為固定寬度
在 Python 中將浮點數格式化為字串

本文將介紹一些在 Python 中將浮點數格式化為固定寬度的方法。

使用格式規範和 format() 方法將浮點數格式化為固定寬度

在這裡,我們將通過格式規範使用正常的格式化過程來固定浮點數的寬度。

我們將建立一個變數 num 併為其分配一個浮點數。然後,我們將以我們需要的格式列印浮點數。我們將使用 format() 函式來獲得我們的結果。

示例程式碼:

#python 3.x
num = 0.02893574
print ("{:.4f}".format(num))

輸出:

0.0289

此處,.4f 稱為格式規範,表示輸出應僅顯示小數點後四位。如果我們改用 .5f,我們將在小數點後得到最多五位數字。放置冒號 : 之前的空字串,以便提供給 format() 函式的引數佔據該位置。在上面的程式中,我們提供的引數是 num。因此,我們在 num 中的任何值都將傳遞給 : 之前的空字串並進行相應的格式化。

在 python 3.6 中,我們還可以使用 f'{}' 來獲得相同的輸出:

#python 3.x
num = 0.02893574
print (f'{num:.4f}')

輸出:

0.0289

將列表中的浮點數格式化為固定寬度

我們使用類似的語法將浮點數的寬度固定為小數點後的特定數字。

首先,我們將建立一個包含多個浮點數的列表。然後,我們將使用 for 迴圈從列表中獲取每個專案並相應地對其進行格式化。我們將使用變數 numbers 來表示列表中的數字。我們將列表中的浮點數以小數點後的固定位數一一列印出來。

示例程式碼:

#python 3.x
list = [18.292164, 52.452189, 999.1212732]
for numbers in list:
    print("{:.3f}".format(numbers))

輸出:

18.292
52.452
999.121

在上面的程式碼中,列表中的每個數字都在 for 迴圈中一個一個地傳送。列表的第一個元素,即 list[0],被分配給變數 numbers,並列印其格式化值,即 18.293。發生這種情況是因為我們執行了 .3f,它表示小數點後最多三位的數字。類似地,第二個元素 list[1] 和第三個 list[2] 也作為變數 numbers 傳遞給迴圈並相應地列印出來。

這個程式會一直執行,直到列表中的所有元素都被執行。

使用 f'{}'

示例程式碼:

下面的列表包含與上面的程式相同的專案。在此示例中,我們將使用 f'{}' 而不是 format() 函式。

#python 3.x
list = [18.292164, 52.452189, 999.1212732]
for numbers in list:
    print(f'{numbers:9.3f}')

輸出:

 18.292
 52.452
999.121

我們可以看到,當我們使用 f'{}' 獲得輸出時。我們還以對齊的方式獲得了所需的輸出。出於同樣的原因,如果我們想讓小數點後的浮動數字對齊,通常最好使用 f'{}'

使用 Python 中的 % 運算子格式化浮點數以固定寬度

我們還可以使用 %v 運算子為浮點數設定固定寬度。該程式碼可能類似於 C 程式設計中的 printf() 函式。

我們將為變數 num 分配一個浮點數,並用十進位制數字列印 num 的值,直到固定寬度。請注意,在將 num 的值傳遞給帶有格式說明符 %.4f 的列印語句時,我們使用了 %num。在 num 之前缺少 % 將是一個語法錯誤。

示例程式碼:

#python 3.x
num = 0.02893574
print ('%.4f'%num)

輸出:

0.0289

在這裡,%num 的使用允許我們在沒有任何函式或字串格式的情況下列印所需的值。

使用 Python 中的 round() 函式將浮點數格式化為固定寬度

我們還可以使用 round() 函式來固定小數點後的位數。此功能限制輸入數字小數點後的位數。如果數字大於值 5,它還會將限制設定為其上整數值的數字四捨五入。

讓我們取一個浮點數並將其分配給變數 num。當我們列印時,我們將使用 round() 函式來限制小數點後的位數。

示例程式碼:

#python 3.x
num = 2.37682
print(round(num,3))

輸出:

2.377

round 函式的語法是 round(number, digits)。這裡引數 number 是強制性的,而引數 digits 是可選的。number 也可以作為一個變數。如果沒有傳遞給引數 digits,則只採用 number 的整數部分作為結果。

在上面的程式中,我們將值 2.37682 傳遞給第一個引數 num,並將其四捨五入到小數點後 3 位,因為我們將值 3 傳遞給了 round() 中的第二個引數方法。

相關文章 - Python Float