Ganzzahlige und dezimale Teile einer Zahl gleichzeitig mit math.modf in Python ermitteln

Geschäft

Die Funktion modf() von math, dem Standardmodul für mathematische Funktionen in Python, kann verwendet werden, um den ganzzahligen und den dezimalen Teil einer Zahl gleichzeitig zu erhalten.

Siehe den folgenden Artikel zu divmod(), das gleichzeitig den Quotienten und den Rest einer Division ermittelt.

Ganzzahlige und dezimale Teile ohne Mathematikmodul ermitteln

Die Anwendung von int() auf einen Fließkomma-Float-Typ ergibt einen ganzzahligen Wert, bei dem das Dezimalkomma abgeschnitten ist. Dies kann verwendet werden, um den ganzzahligen Teil und den Dezimalteil zu erhalten.

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'>

Ganzzahlige und dezimale Teile einer Zahl gleichzeitig mit math.modf() ermitteln

Die Funktion modf() im Mathematikmodul kann verwendet werden, um gleichzeitig den ganzzahligen und den dezimalen Teil einer Zahl zu erhalten.

math.modf() gibt das folgende Tupel zurück Beachten Sie die Reihenfolge, da der Dezimalteil zuerst kommt.

  • (decimal, integer)
import math

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

Jede kann wie folgt ausgepackt und einer separaten Variablen zugewiesen werden Sowohl der ganzzahlige als auch der dezimale Teil sind Float-Typen.

f, i = math.modf(1.5)

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

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

Das Vorzeichen ist dasselbe wie das Vorzeichen des ursprünglichen Wertes, sowohl für den ganzzahligen als auch für den dezimalen Teil.

f, i = math.modf(-1.5)

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

Gilt für int-Typen. In diesem Fall sind sowohl der ganzzahlige als auch der dezimale Teil Float-Typen.

f, i = math.modf(100)

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

Die folgende Methode kann verwendet werden, um zu prüfen, ob ein Float-Typ eine ganze Zahl ist (d. h., der Dezimalteil ist 0), ohne den Dezimalteil zu ermitteln. Siehe den folgenden Artikel.

  • float.is_integer()