"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo trunco ​​una flotación a un número específico de decimales sin redondeo?

¿Cómo trunco ​​una flotación a un número específico de decimales sin redondeo?

Publicado el 2025-02-06
Navegar:210

How Do I Truncate a Float to a Specific Number of Decimal Places Without Rounding?

cómo eliminar los dígitos de un float

para eliminar dígitos de un flotador y retener un número específico de dígitos después del punto decimal, siga Estos pasos:

implementation (Python 2.7 y 3.1):

def truncate(f, n):
    """Truncates/pads a float f to n decimal places without rounding"""
    s = '{}'.format(f)
    if 'e' in s or 'E' in s:
        return '{0:.{1}f}'.format(f, n)
    i, p, d = s.partition('.')
    return '.'.join([i, (d '0'*n)[:n]])

(versiones más antiguas de Python):

def truncate(f, n):
    """Truncates/pads a float f to n decimal places without rounding"""
    s = '%.12f' % f
    i, p, d = s.partition('.')
    return '.'.join([i, (d '0'*n)[:n]])

explicación:

  1. Convertir a String: Convierta el flotador en una cadena con precisión completa usando '{}'.
  2. maneje la notación científica: si la representación de la cadena incluye 'e' o 'e' , use '{0 :. {1} f}' para formatearlo.
  3. dividir cadena: Partido en tres partes: antes del punto decimal (i), el punto decimal en sí (p), y después del punto decimal (d).
  4. truncate o almo que n decimal lugares.

consideraciones especiales:

  • consideraciones de precisión: para versiones más antiguas de Python (hasta 2.6 hasta 2.6 o 3.0), la selección de una precisión fija (por ejemplo, 12) para el redondeo puede ser necesario para evitar errores de truncamiento.
  • Error de redondeo y punto flotante: Algunos literales de punto flotante pueden representar los El mismo valor binario a pesar de que parecen diferentes en código, lo que lleva a posibles discrepancias en el truncamiento.
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3