Određivanje je li broj cijeli broj ili decimalni u Pythonu

Poslovanje

Odredite je li broj cijeli broj ili decimalni u Pythonu.

Sljedeći slučajevi su objašnjeni s uzorcima kodova.

  • Određuje je li broj cijeli broj int ili float s pomičnim zarezom:isinstance()
  • Određuje je li broj s plutajućim brojem cijeli broj (0 decimalnih mjesta):float.is_integer()
  • Određuje je li niz brojeva cijeli broj

Da biste dobili cjelobrojne i decimalne vrijednosti decimalnog broja, pogledajte sljedeći članak.

Pogledajte sljedeći članak za informacije o određivanju je li niz broj (uključujući kineske brojeve itd.), a ne je li cijeli broj ili decimalni.

Određuje je li broj cijeli broj ili tip s pomičnim zarezom:isinstance()

Tip objekta može se dobiti pomoću ugrađene funkcije type().

i = 100
f = 1.23

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

isinstance(object, type)
Ova ugrađena funkcija može se koristiti za određivanje je li objekt određene vrste. Ovo se može koristiti za određivanje je li broj cijeli broj ili tip s pomičnim zarezom.

print(isinstance(i, int))
# True

print(isinstance(i, float))
# False

print(isinstance(f, int))
# False

print(isinstance(f, float))
# True

U ovom slučaju prosuđuje samo tip, tako da ne može procijeniti je li vrijednost tipa float cijeli broj (s decimalnim zarezom 0) ili ne.

f_i = 100.0

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

print(isinstance(f_i, int))
# False

print(isinstance(f_i, float))
# True

Određuje je li broj s plutajućim brojem cijeli broj (0 decimalnih mjesta):float.is_integer()

Metoda is_integer() predviđena je za tip float, koji vraća true ako je vrijednost cijeli broj i false u suprotnom.

f = 1.23

print(f.is_integer())
# False

f_i = 100.0

print(f_i.is_integer())
# True

Na primjer, funkcija koja vraća true za cijeli broj može se definirati na sljedeći način. S druge strane, vrsta stringa bi bila lažna.

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

Određuje je li niz brojeva cijeli broj

Ako želite utvrditi da je niz cjelobrojnih znamenki također cijeli broj, moguće su sljedeće funkcije.

Za vrijednosti koje se mogu pretvoriti u float tip pomoću float(), metoda is_integer() primjenjuje se nakon pretvorbe u float i rezultat se vraća.

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

Pogledajte sljedeći članak za pojedinosti o pretvaranju nizova u brojeve.

Pogledajte sljedeći članak za pojedinosti o određivanju je li niz broj (uključujući kineske brojeve itd.).