Función math.modf() de Python

Python math 模块Módulo math de Python


En el cálculo numérico, a veces necesitamosseparar la parte entera y la parte fraccionaria de un número. Por ejemplo, extraer 3 y 0.14 de 3.14.

math.modf()es la función especialmente diseñada para realizar esta operación; devuelve una tupla que contiene la partefraccionariayy entera del número。

Definición de la palabra: modfEs la abreviatura de "modular fractional", que significa "parte fraccionaria".


Sintaxis básica y parámetros

Formato de sintaxis

import math

math.modf(x)

Descripción de parámetros

  • Parámetros: x- Número (entero o flotante)

Valor de retorno

  • Devuelve una tupla(fractional, integer)
  • fractional: la parte fraccionaria, con el mismo signo que x
  • integer: la parte entera (truncamiento hacia cero)

Ejemplos

Ejemplo 1: Uso básico

Ejemplo

import math

result = math.modf(3.14159)
print("math.modf(3.14159) =", result)
fractional, integer = math.modf(3.14159)
print(f"Parte fraccionaria: {fractional}, parte entera: {integer}")

Resultado de ejecución:

math.modf(3.14159) = (0.14158999999999988, 3.0)
小数部分: 0.14158999999999988, 整数部分: 3.0

Ejemplo 2: Manejo de números negativos

Ejemplo

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"Parte fraccionaria: {fractional}, parte entera: {integer}")

Resultado de ejecución:

math.modf(-3.14) = (-0.14000000000000012, -3.0)
math.modf(-0.5) = (-0.5, -0.0)
小数部分: -0.14, 整数部分: -3.0

Ejemplo 3: Manejo de enteros

Ejemplo

import math

print("math.modf(5) =", math.modf(5))
print("math.modf(0) =", math.modf(0))
print("math.modf(-8) =", math.modf(-8))

Resultado de ejecución:

math.modf(5) = (0.0, 5.0)
math.modf(0) = (0.0, 0.0)
math.modf(-8) = (-0.0, -8.0)

Ejemplo 4: Aplicación práctica - Separación de cantidades de dinero

Ejemplo

import math

# Separar la cantidad: 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"Precio {price} yuan = {yuan} yuan {jiao} jiao {fen} fen")

# Conversión de tiempo: horas a h:min:s
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} horas = {int(whole_hours)} h {int(whole_minutes)} min {int(seconds)} s")

Resultado de ejecución:

价格 12.58 元 = 12 元 5 角 7 分
73.5 小时 = 73 时 30 分 0 秒

Notas

  • La parte entera devuelta es de tipo flotante, como 3.0 en lugar de 3.
  • La parte entera utiliza el "redondeo hacia cero" (truncamiento), a diferencia de floor.
  • Los números de punto flotante tienen errores de precisión; los resultados pueden tener ligeras desviaciones.

Python math 模块Módulo math de Python

Otras extensiones