在 Python 中確定一個數字是整數還是小數

商業

在 Python 中確定數字是整數還是小數。

以下案例以示例代碼進行說明。

  • 確定數字是整數 int 還是浮點 float:isinstance()
  • 確定浮點類型數是否為整數(0 個小數位):float.is_integer()
  • 確定數字字符串是否為整數

要獲取十進制數的整數和十進制值,請參閱以下文章。

判斷字符串是否為數字(包括中文數字等)而不是整數還是小數,請看下面的文章。

確定數字是整數還是浮點類型:isinstance()

可以使用內置函數 type() 獲取對象的類型。

i = 100
f = 1.23

print(type(i))
print(type(f))
# <class 'int'>
# <class 'float'>

isinstance(object, type)
此內置函數可用於確定對像是否屬於特定類型。這可用於確定數字是整數還是浮點類型。

print(isinstance(i, int))
# True

print(isinstance(i, float))
# False

print(isinstance(f, int))
# False

print(isinstance(f, float))
# True

在這種情況下,它只判斷類型,因此無法判斷浮點類型的值是否為整數(小數點為0)。

f_i = 100.0

print(type(f_i))
# <class 'float'>

print(isinstance(f_i, int))
# False

print(isinstance(f_i, float))
# True

確定浮點類型數是否為整數(0 個小數位):float.is_integer()

為 float 類型提供了 is_integer() 方法,如果值為整數,則返回 true,否則返回 false。

f = 1.23

print(f.is_integer())
# False

f_i = 100.0

print(f_i.is_integer())
# True

例如,對於整數返回 true 的函數可以定義如下。另一方面,字符串類型為 false。

def is_integer_num(n):
    if isinstance(n, int):
        return True
    if isinstance(n, float):
        return n.is_integer()
    return False

print(is_integer_num(100))
# True

print(is_integer_num(1.23))
# False

print(is_integer_num(100.0))
# True

print(is_integer_num('100'))
# False

確定數字字符串是否為整數

如果要確定一串整數數字也是整數,可以使用以下函數。

對於可以用float()轉換為float類型的值,轉換為float後應用is_integer()方法並返回結果。

def is_integer(n):
    try:
        float(n)
    except ValueError:
        return False
    else:
        return float(n).is_integer()

print(is_integer(100))
# True

print(is_integer(100.0))
# True

print(is_integer(1.23))
# False

print(is_integer('100'))
# True

print(is_integer('100.0'))
# True

print(is_integer('1.23'))
# False

print(is_integer('string'))
# False

有關將字符串轉換為數字的詳細信息,請參閱以下文章。

判斷字符串是否為數字(包括中文數字等)的詳細內容請看下面的文章。

Copied title and URL