Python math.modf() Funktion
In numerischen Berechnungen müssen wir manchmalden ganzzahligen Teil und den Bruchteil einer Zahl trennen. Zum Beispiel 3 und 0.14 aus 3.14 extrahieren.
math.modf()ist eine Funktion, die speziell für diesen Vorgang entwickelt wurde. Sie gibt ein Tupel zurück, das denBruchteilund denganzzahligen Teil der Zahl enthält。
Wortdefinition: modfist eine Abkürzung für "modular fractional", was "Bruchteil" bedeutet.
Grundlegende Syntax und Parameter
Syntax
import math math.modf(x)
Parameterbeschreibung
- Parameter:
x- numerischer Wert (Ganzzahl oder Gleitkommazahl)
Rückgabewert
- Gibt ein Tupel zurück
(fractional, integer) fractional: Bruchteil, Vorzeichen ist dasselbe wie bei xinteger: ganzzahliger Teil (gegen null abgeschnitten)
Beispiel
Beispiel 1: Grundlegende Verwendung
Beispiel
import math
result = math.modf(3.14159)
print("math.modf(3.14159) =", result)
fractional, integer = math.modf(3.14159)
print(f"Bruchteil: {fractional}, Ganzzahlanteil: {integer}")
result = math.modf(3.14159)
print("math.modf(3.14159) =", result)
fractional, integer = math.modf(3.14159)
print(f"Bruchteil: {fractional}, Ganzzahlanteil: {integer}")
Ausgabe:
math.modf(3.14159) = (0.14158999999999988, 3.0) 小数部分: 0.14158999999999988, 整数部分: 3.0
Beispiel 2: Umgang mit negativen Zahlen
Beispiel
import math
print("math.modf(-3.14) =", math.modf(-3.14))
print("math.modf(-0.5) =", math.modf(-0.5))
fractional, integer = math.modf(-3.14)
print(f"Bruchteil: {fractional}, Ganzzahlanteil: {integer}")
print("math.modf(-3.14) =", math.modf(-3.14))
print("math.modf(-0.5) =", math.modf(-0.5))
fractional, integer = math.modf(-3.14)
print(f"Bruchteil: {fractional}, Ganzzahlanteil: {integer}")
Ausgabe:
math.modf(-3.14) = (-0.14000000000000012, -3.0) math.modf(-0.5) = (-0.5, -0.0) 小数部分: -0.14, 整数部分: -3.0
Beispiel 3: Umgang mit Ganzzahlen
Beispiel
import math
print("math.modf(5) =", math.modf(5))
print("math.modf(0) =", math.modf(0))
print("math.modf(-8) =", math.modf(-8))
print("math.modf(5) =", math.modf(5))
print("math.modf(0) =", math.modf(0))
print("math.modf(-8) =", math.modf(-8))
Ausgabe:
math.modf(5) = (0.0, 5.0) math.modf(0) = (0.0, 0.0) math.modf(-8) = (-0.0, -8.0)
Beispiel 4: Praktische Anwendung – Aufteilen eines Betrags
Beispiel
import math
# Betrag aufteilen: Yuan, Jiao, Fen
price = 12.58
fractional, integer = math.modf(price)
yuan = int(integer)
jiao = int(fractional * 10)
fen = int((fractional * 10 - jiao) * 10)
print(f"Preis {price} Yuan = {yuan} Yuan {jiao} Jiao {fen} Fen")
# Zeitumrechnung: Stunden in Stunden:Minuten:Sekunden
hours = 73.5
fractional_hours, whole_hours = math.modf(hours)
total_minutes = fractional_hours * 60
fractional_minutes, whole_minutes = math.modf(total_minutes)
seconds = fractional_minutes * 60
print(f"{hours} Stunden = {int(whole_hours)} Stunden {int(whole_minutes)} Minuten {int(seconds)} Sekunden")
# Betrag aufteilen: Yuan, Jiao, Fen
price = 12.58
fractional, integer = math.modf(price)
yuan = int(integer)
jiao = int(fractional * 10)
fen = int((fractional * 10 - jiao) * 10)
print(f"Preis {price} Yuan = {yuan} Yuan {jiao} Jiao {fen} Fen")
# Zeitumrechnung: Stunden in Stunden:Minuten:Sekunden
hours = 73.5
fractional_hours, whole_hours = math.modf(hours)
total_minutes = fractional_hours * 60
fractional_minutes, whole_minutes = math.modf(total_minutes)
seconds = fractional_minutes * 60
print(f"{hours} Stunden = {int(whole_hours)} Stunden {int(whole_minutes)} Minuten {int(seconds)} Sekunden")
Ausgabe:
价格 12.58 元 = 12 元 5 角 7 分 73.5 小时 = 73 时 30 分 0 秒
Hinweise
- Der zurückgegebene ganzzahlige Anteil ist vom Typ float, wie z. B. 3.0 statt 3
- Der ganzzahlige Anteil verwendet "Abschneiden gegen null", was sich von floor unterscheidet
- Gleitkommazahlen haben Präzisionsfehler, daher können Ergebnisse geringfügige Abweichungen aufweisen
Andere Erweiterungen
Python-Modul math