Skip to content

Ottenere le parti frazionarie e intere con math.modf() in Python

Python

math.modf() può essere utilizzato per ottenere contemporaneamente le parti frazionarie e intere di un numero.

Vedere il seguente articolo per divmod(), che riporta il quoziente e il resto.

Ottieni le parti frazionarie e intere senza modulo matematico

Applicando int() al numero a virgola mobile float, puoi ottenere la parte intera.

Usando questo, si possono ottenere le parti frazionarie e intere.

a = 1.5

i = int(a)
f = a - int(a)

print(i)
print(f)
# 1
# 0.5

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

Ottieni le parti frazionarie e intere con math.modf()

modf() nel modulo matematico può essere utilizzato per ottenere contemporaneamente la parte frazionaria e quella intera di un numero.

math.modf() aggiunge una tupla (parte frazionaria, parte intera).

import math

print(math.modf(1.5))
print(type(math.modf(1.5)))
# (0.5, 1.0)
# <class 'tuple'>

Ciascuno può essere assegnato a una variabile utilizzando la decompressione. Sia la parte frazionaria che quella intera sono float.

f, i = math.modf(1.5)

print(i)
print(f)
# 1.0
# 0.5

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

Il segno è lo stesso del valore originale.

f, i = math.modf(-1.5)

print(i)
print(f)
# -1.0
# -0.5

math.modf() può essere applicato anche a int. Anche in questo caso, sia la parte frazionaria che quella intera sono float.

f, i = math.modf(100)

print(i)
print(f)
# 100.0
# 0.0

Se float è un numero intero (la parte frazionaria è 0) può essere verificato con il metodo float is_integer() senza ottenere la parte frazionaria. Vedi il seguente articolo.