versiones guia español descargar actualizar python string floating-point

python - guia - Convierta el número de punto flotante a una cierta precisión, y luego copie a una cadena



qgis manual (7)

Python 3.6 | 2017

Para dejarlo en claro, puede usar el formato de f-string . Esto tiene casi la misma sintaxis que el método de format , pero lo hace un poco más agradable.

Ejemplo:

print(f''{numvar:.9f}'')

Más lectura sobre la nueva cadena F:

Tengo un número de punto flotante, digamos 135.12345678910 . Quiero concatenar ese valor a una cadena, pero solo quiero 135.123456789 . Con la impresión, puedo hacerlo fácilmente haciendo algo como:

print "%.9f" % numvar

con numvar siendo mi número original. ¿Hay una forma fácil de hacer esto?


Con Python <3 (por ejemplo, 2.6 [ver comentarios] o 2.7), hay dos formas de hacerlo.

# Option one older_method_string = "%.9f" % numvar # Option two newer_method_string = "{:.9f}".format(numvar)

Pero tenga en cuenta que para las versiones de Python superiores a 3 (por ejemplo, 3.2 o 3.3), se preferred opción dos.

Para obtener más información sobre la opción dos, sugiero este enlace en el formato de cadena de la documentación de Python .

Y para más información sobre la opción uno, este enlace será suficiente y tiene información sobre los diferentes indicadores .

Python 3.6 (lanzamiento oficial en diciembre de 2016), agregará el literal de cadena f , vea más información aquí , que amplía el método str.format (uso de llaves como f"{numvar:.9f}" resuelve el problema original )


En caso de que no se conozca la precisión hasta el tiempo de ejecución, esta otra opción de formato es útil:

>>> n = 9 >>> ''%.*f'' % (n, numvar) ''135.123456789''


La función str tiene un error. Por favor intenta lo siguiente. Verá ''0,196553'', pero la salida correcta es ''0,196554''. Porque el valor predeterminado de la función str es ROUND_HALF_UP.

>>> value=0.196553500000 >>> str("%f" % value).replace(".", ",")


No es impresión lo que hace el formato, es una propiedad de cadenas, por lo que puede usar

newstring = "%.9f" % numvar


Para establecer la precisión con 9 dígitos, obtenga:

print "%.9f" % numvar

Precisión de vuelta con 2 dígitos:

print "%.2f" % numvar

Precisión de retorno con 2 dígitos y valor convertido flotante:

numvar = 4.2345 print float("%.2f" % numvar)


Usando ronda:

>>> numvar = 135.12345678910 >>> str(round(numvar,9)) ''135.123456789'' >>>