una trabajar total sacar saca respecto representa que porcentajes porcentaje elevado dinero cómo con como colocar cantidad calculo calcular python

python - trabajar - cómo sacar porcentajes



cómo mostrar el Porcentaje en python (8)

este es mi código:

print str(float(1/3))+''%''

y muestra:

0.0%

pero quiero obtener el 33%

que puedo hacer.


Así es como lo hice:

n = 1.0 / 3

imprimir ''% .0f''% (100 * n) + r ''%''

[Salida] 33%


Entonces querrías hacer esto en su lugar:

print str(int(1.0/3.0*100))+''%''

El .0 denota como flotantes e int() redondea a números enteros después de nuevo.


Estás dividiendo enteros y luego convirtiéndolos en flotantes. Dividir por flotadores en su lugar.

Como beneficio adicional, utilice los asombrosos métodos de formato de cadenas que se describen a continuación: http://docs.python.org/library/string.html#format-specification-mini-language

Para especificar un porcentaje de conversión y precisión.

>>> float(1) / float(3) [Out] 0.33333333333333331 >>> 1.0/3.0 [Out] 0.33333333333333331 >>> ''{0:.0%}''.format(1.0/3.0) # use string formatting to specify precision [Out] ''33%'' >>> ''{percent:.2%}''.format(percent=1.0/3.0) [Out] ''33.33%''

Una gran joya!


Hay una forma más conveniente de opción de formato de .format() para el método de formato .format() :

>>> ''{:.1%}''.format(1/3.0) ''33.3%''


Qué tal algo como esto:

print str( round( float(1.0/3.0) * 100 ) )[:2] + ''%''

Este bit [: 2] cortará el .0 del resultado.


Solo para completar, ya que noté que nadie sugirió este enfoque simple:

>>> print "%.0f%%" % (100 * 1.0/3) 33%

Detalles:

  • %.0f significa " imprimir un flotante con 0 decimales ", por lo que %.2f imprimiría 33.33
  • %% imprime un % literal. Un poco más limpio que tu original +''%''
  • 1.0 lugar de 1 se encarga de obligar a la división a flotar, por lo que no hay más 0.0

Solo ponlo así:

print ''%.2f%%'' % 24.689 # Double percentage sign


format admite un tipo de porcentaje de precisión de punto flotante :

>>> print "{0:.0%}".format(1./3) 33%

Si no quieres la división de enteros, puedes importar la división de __future__ de __future__ :

>>> from __future__ import division >>> 1 / 3 0.3333333333333333 # The above 33% example would could now be written without the explicit # float conversion: >>> print "{0:.0f}%".format(1/3 * 100) 33% # Or even shorter using the format mini language: >>> print "{:.0%}".format(1/3) 33%