Fonction Python math.modf()
Dans les calculs numériques, il est parfois nécessaire deséparer la partie entière et la partie fractionnaire d'un nombre. Par exemple, extraire 3 et 0.14 de 3.14.
math.modf()est une fonction spécialement conçue pour cette opération. Elle renvoie un tuple contenant lapartie fractionnaireet lapartie entière du nombre。
Définition du mot: modfest l'abréviation de « modular fractional », qui signifie « partie fractionnaire ».
Syntaxe de base et paramètres
Syntaxe
import math math.modf(x)
Description du paramètre
- Paramètre:
x- valeur numérique (entier ou flottant)
Valeur de retour
- Renvoie un tuple
(fractional, integer) fractional: partie fractionnaire, le signe est le même que celui de xinteger: partie entière (tronquée vers zéro)
Exemple
Exemple 1 : Utilisation de base
Exemple
import math
result = math.modf(3.14159)
print("math.modf(3.14159) =", result)
fractional, integer = math.modf(3.14159)
print(f"Partie fractionnaire : {fractional}, partie entière : {integer}")
result = math.modf(3.14159)
print("math.modf(3.14159) =", result)
fractional, integer = math.modf(3.14159)
print(f"Partie fractionnaire : {fractional}, partie entière : {integer}")
Sortie :
math.modf(3.14159) = (0.14158999999999988, 3.0) 小数部分: 0.14158999999999988, 整数部分: 3.0
Exemple 2 : Gestion des nombres négatifs
Exemple
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"Partie fractionnaire : {fractional}, partie entière : {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"Partie fractionnaire : {fractional}, partie entière : {integer}")
Sortie :
math.modf(-3.14) = (-0.14000000000000012, -3.0) math.modf(-0.5) = (-0.5, -0.0) 小数部分: -0.14, 整数部分: -3.0
Exemple 3 : Gestion des entiers
Exemple
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))
Sortie :
math.modf(5) = (0.0, 5.0) math.modf(0) = (0.0, 0.0) math.modf(-8) = (-0.0, -8.0)
Exemple 4 : Application pratique - Séparation du montant
Exemple
import math
# Diviser le montant : yuan, jiao, fen
price = 12.58
fractional, integer = math.modf(price)
yuan = int(entier)
jiao = int(fractionnaire * 10)
fen = int((fractionnaire * 10 - jiao) * 10)
print(f"Prix {price} yuan = {yuan} yuan {jiao} jiao {fen} fen")
# Conversion de temps : heures en heures:minutes:secondes
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} heures = {int(whole_hours)} heures {int(whole_minutes)} minutes {int(seconds)} secondes")
# Diviser le montant : yuan, jiao, fen
price = 12.58
fractional, integer = math.modf(price)
yuan = int(entier)
jiao = int(fractionnaire * 10)
fen = int((fractionnaire * 10 - jiao) * 10)
print(f"Prix {price} yuan = {yuan} yuan {jiao} jiao {fen} fen")
# Conversion de temps : heures en heures:minutes:secondes
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} heures = {int(whole_hours)} heures {int(whole_minutes)} minutes {int(seconds)} secondes")
Sortie :
价格 12.58 元 = 12 元 5 角 7 分 73.5 小时 = 73 时 30 分 0 秒
Notes
- La partie entière renvoyée est de type float, comme 3.0 au lieu de 3
- La partie entière utilise "troncature vers zéro", ce qui est différent de floor
- Les nombres à virgule flottante ont des erreurs de précision, donc les résultats peuvent présenter de légères déviations
Autres extensions
Module math de Python