在 Python 中將浮點數轉換為整數

Vaibhav Vaibhav 2023年1月30日
  1. 在 Python 中使用 int() 函式將浮點數轉換為整數
  2. 使用 Python 中的 math 模組將浮點數轉換為整數
在 Python 中將浮點數轉換為整數

由於內建函式和庫,在 Python 中將浮點數轉換為整數相對容易。將浮點數轉換為整數時,有兩種可能性。儘管自己編寫函式來完成此任務很容易,但在本文中我們僅討論如何使用內建函式和庫。

假設我們有一個數字,例如 1.52。如果我們希望將該數字轉換為整數,則可以使用 21。前者是最高值,後者是最低值。由於有多個函式來完成這個任務,因此它們都以不同的方式執行上述任務並返回不同的值。因此,請根據你的用例選擇相應的函式。

在 Python 中使用 int() 函式將浮點數轉換為整數

number = 25.49
print(int(number))

輸出:

25

int() 函式接受表示數字的引數並將其轉換為整數。此引數可以是字串,浮點值或整數本身。該函式考慮數字中的整數值或小數點前的部分,然後將其返回。

但是,當以整數形式 integer.9999999999999999 作為引數傳遞時,int() 的行為略有不同。如果小數點後有十六個以上的 9 位數,則在返回正數的情況下該函式將返回整數+1,而在負數的情況下該函式將返回整數-1 作為答案。

請參考以下程式碼片段,以更好地理解該概念。

print(int(1.5))
print(int(1.51))
print(int(1.49))
print(int(-1.5))
print(int(-1.51))
print(int(-1.49))
print(int(1.9999999999999999))
print(int(-1.9999999999999999))

輸出:

0
1
1
1
1
-1
-1
-1
2
-2

使用 Python 中的 math 模組將浮點數轉換為整數

我們可以使用內建的 Python 庫 math 來完成相同的任務。該庫具有數學計算所需的各種數學函式。

我們將只討論 math 庫中的三個數學函式。

顧名思義,trunc() 函式會截斷或刪減作為引數傳遞的數字的小數部分,而只考慮整數部分。它的行為與內建的 int() 函式完全相同,對於我們上面談到的例外情況,它的行為是不同的。

import math

print(math.trunc(0))
print(math.trunc(1))
print(math.trunc(1.5))
print(math.trunc(1.51))
print(math.trunc(1.49))
print(math.trunc(-1.5))
print(math.trunc(-1.51))
print(math.trunc(-1.49))
print(math.trunc(1.9999999999999999))
print(math.trunc(-1.9999999999999999))

輸出:

0
1
1
1
1
-1
-1
-1
2
-2

請參閱官方文件以瞭解有關此函式的更多資訊,此處

接下來,我們有 ceil() 函式。此函式返回數字的上限值或大於或等於作為引數傳遞的數字的最小整數。

import math

print(math.ceil(0))
print(math.ceil(1))
print(math.ceil(1.5))
print(math.ceil(1.51))
print(math.ceil(1.49))
print(math.ceil(-1.5))
print(math.ceil(-1.51))
print(math.ceil(-1.49))
print(math.ceil(1.9999999999999999))
print(math.ceil(-1.9999999999999999))

輸出:

0
1
2
2
2
-1
-1
-1
2
-2

請參閱官方文件以瞭解有關此函式的更多資訊,此處

最後,我們具有 floor() 函式。此函式返回數字的下限值或小於或等於作為引數傳遞的數字的最大整數。

import math

print(math.floor(0))
print(math.floor(1))
print(math.floor(1.5))
print(math.floor(1.51))
print(math.floor(1.49))
print(math.floor(-1.5))
print(math.floor(-1.51))
print(math.floor(-1.49))
print(math.floor(1.9999999999999999))
print(math.floor(-1.9999999999999999))

輸出:

0
1
1
1
1
-2
-2
-2
2
-2

請參閱官方文件以瞭解有關此函式的更多資訊,此處

作者: Vaibhav Vaibhav
Vaibhav Vaibhav avatar Vaibhav Vaibhav avatar

Vaibhav is an artificial intelligence and cloud computing stan. He likes to build end-to-end full-stack web and mobile applications. Besides computer science and technology, he loves playing cricket and badminton, going on bike rides, and doodling.

相關文章 - Python Float

相關文章 - Python Integer