print - python string float format
Conversión de Float a Dólares y Centavos (4)
Basándose en el ejemplo de @ JustinBarber y tomando nota del comentario de @ eric.frederich, si desea formatear valores negativos como -$1,000.00
lugar de $-1,000.00
y no desea usar la locale
:
def as_currency(amount):
if amount >= 0:
return ''${:,.2f}''.format(amount)
else:
return ''-${:,.2f}''.format(-amount)
En primer lugar, he intentado esta publicación (entre otras): Formato de moneda en Python . No tiene efecto en mi variable. Mi mejor suposición es que es porque estoy usando Python 3 y ese fue el código para Python 2. (A menos que haya pasado por alto algo, porque soy nuevo en Python).
Quiero convertir un flotante, como 1234.5, en una cadena, como "$ 1,234.50". ¿Cómo voy a hacer esto?
Y por las dudas, aquí está mi código que compiló, pero no afectó mi variable:
money = float(1234.5)
locale.setlocale(locale.LC_ALL, '''')
locale.currency(money, grouping=True)
También sin éxito:
money = float(1234.5)
print(money) #output is 1234.5
''${:,.2f}''.format(money)
print(money) #output is 1234.5
En Python 3.xy 2.7, simplemente puede hacer esto:
>>> ''${:,.2f}''.format(1234.5)
''$1,234.50''
El :,
agrega una coma como un separador de miles, y el .2f
limita la secuencia a dos lugares decimales (o agrega suficientes ceros para obtener hasta dos decimales, según sea el caso) al final.
En python 3, puedes usar:
import locale
locale.setlocale( locale.LC_ALL, ''English_United States.1252'' )
locale.currency( 1234.50, grouping = True )
Salida
''$1,234.50''
dijiste eso:
`mony = float(1234.5)
print(money) #output is 1234.5
''${:,.2f}''.format(money)
print(money)
no funcionó ... ¿Has codificado exactamente de esa manera? Esto debería funcionar (ver la pequeña diferencia):
money = float(1234.5) #next you used format without printing, nor affecting value of "money"
amountAsFormattedString = ''${:,.2f}''.format(money)
print( amountAsFormattedString )