Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

221
Vistas
Dígitos fijos después del decimal con f-strings

¿Hay una manera fácil con Python f-strings para corregir la cantidad de dígitos después del punto decimal? (Específicamente cadenas f, no otras opciones de formato de cadenas como .format o %)

Por ejemplo, digamos que quiero mostrar 2 dígitos después del lugar decimal.

¿Cómo puedo hacer eso? digamos que

 a = 10.1234
over 4 years ago · Santiago Trujillo
7 Respuestas
Responde la pregunta

0

Considerar:
 >>> number1 = 10.1234 >>> f'{number1:.2f}' '10.12'
Sintaxis:
 "{" [field_name] ["!" conversion] [":" format_spec] "}"
Explicación:
 # Let's break it down... # [field_name] => number1 # ["!" conversion] => Not used # [format_spec] => [.precision][type] # => .[2][f] => .2f # where f means Fixed-point notation

Yendo más allá, las cadenas de formato tienen la siguiente sintaxis. Como puede ver, hay mucho más que se puede hacer.

 Syntax: "{" [field_name] ["!" conversion] [":" format_spec] "}" # let's understand what each field means... field_name ::= arg_name ("." attribute_name | "[" element_index "]")* arg_name ::= [identifier | digit+] attribute_name ::= identifier element_index ::= digit+ | index_string index_string ::= <any source character except "]"> + conversion ::= "r" | "s" | "a" format_spec ::= [[fill]align][sign][#][0][width][grouping_option][.precision][type] # Looking at the underlying fields under format_spec... fill ::= <any character> align ::= "<" | ">" | "=" | "^" sign ::= "+" | "-" | " " width ::= digit+ grouping_option ::= "_" | "," precision ::= digit+ type ::= "b" | "c" | "d" | "e" | "E" | "f" | "F" | "g" | "G" | "n" | "o" | "s" | "x" | "X" | "%"

Consulte https://docs.python.org/3/library/string.html#format-string-syntax

over 4 years ago · Santiago Trujillo Denunciar

0

Simplemente

 a = 10.1234 print(f"{a:.1f}")

Salida: 10.1

 a = 10.1234 print(f"{a:.2f}")

Salida: 10.12

 a = 10.1234 print(f"{a:.3f}")

Salida: 10.123

 a = 10.1234 print(f"{a:.4f}")

Salida: 10.1234

Simplemente cambie el valor después del signo del punto decimal que representa cuántos puntos decimales desea imprimir.

over 4 years ago · Santiago Trujillo Denunciar

0

a = 10.1234 print(f"{a:0.2f}")

en 0.2f:

  • 0 le dice a Python que no ponga límite en el número total de dígitos para mostrar
  • .2 está diciendo que queremos tomar solo 2 dígitos después del decimal (el resultado será el mismo que una función round())
  • f está diciendo que es un número flotante. Si olvida f, solo imprimirá 1 dígito menos después del decimal. En este caso, será solo 1 dígito después del decimal.

Un video detallado sobre f-string para números https://youtu.be/RtKUsUTY6to?t=606

over 4 years ago · Santiago Trujillo Denunciar

0

Agregando a la respuesta de Rob, puede usar especificadores de formato con cadenas f ( más aquí ).

  • Puede controlar el número de decimales :
 pi = 3.141592653589793238462643383279 print(f'The first 6 decimals of pi are {pi:.6f}.')
 The first 6 decimals of pi are 3.141593.
  • Puede convertir a porcentaje :
 grade = 29/45 print(f'My grade rounded to 3 decimals is {grade:.3%}.')
 My grade rounded to 3 decimals is 64.444%.
  • Puedes hacer otras cosas como imprimir longitud constante :
 from random import randint for i in range(5): print(f'My money is {randint(0, 150):>3}$')
 My money is 126$ My money is 7$ My money is 136$ My money is 15$ My money is 88$
  • O incluso imprimir con un separador de comas y miles :
 print(f'I am worth {10000000000:,}$')
 I am worth 10,000,000,000$
over 4 years ago · Santiago Trujillo Denunciar

0

Agregando a la respuesta de Robᵩ: en caso de que desee imprimir números bastante grandes, usar separadores de miles puede ser de gran ayuda (tenga en cuenta la coma).

 >>> f'{a*1000:,.2f}' '10,123.40'

Y en caso de que quiera rellenar/usar un ancho fijo, el ancho va antes de la coma:

 >>> f'{a*1000:20,.2f}' ' 10,123.40'
over 4 years ago · Santiago Trujillo Denunciar

0

Cuando se trata de números float , puede usar especificadores de formato :

 f'{value:{width}.{precision}}'

donde:

  • value es cualquier expresión que se evalúa como un número
  • width especifica el número de caracteres usados en total para mostrar, pero si el value necesita más espacio que el ancho especificado, entonces se usa el espacio adicional.
  • precision indica el número de caracteres utilizados después del punto decimal

Lo que te falta es el especificador de tipo para tu valor decimal. En este enlace , encontrará los tipos de presentación disponibles para punto flotante y decimal.

Aquí tienes algunos ejemplos, utilizando el tipo de presentación f (Punto fijo):

 # notice that it adds spaces to reach the number of characters specified by width In [1]: f'{1 + 3 * 1.5:10.3f}' Out[1]: ' 5.500' # notice that it uses more characters than the ones specified in width In [2]: f'{3000 + 3 ** (1 / 2):2.1f}' Out[2]: '3001.7' In [3]: f'{1.2345 + 4 ** (1 / 2):9.6f}' Out[3]: ' 3.234500' # omitting width but providing precision will use the required characters to display the number with the the specified decimal places In [4]: f'{1.2345 + 3 * 2:.3f}' Out[4]: '7.234' # not specifying the format will display the number with as many digits as Python calculates In [5]: f'{1.2345 + 3 * 0.5}' Out[5]: '2.7344999999999997'
over 4 years ago · Santiago Trujillo Denunciar

0

Incluya el especificador de tipo en su expresión de formato:

 >>> a = 10.1234 >>> f'{a:.2f}' '10.12'
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda