在 Python 中將浮點數格式化為字串
-
使用格式規範和
format()
方法將浮點數格式化為固定寬度 - 將列表中的浮點數格式化為固定寬度
-
使用 Python 中的
%
運算子格式化浮點數以固定寬度 -
使用 Python 中的
round()
函式將浮點數格式化為固定寬度
本文將介紹一些在 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()
中的第二個引數方法。