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''
>>>