Как напечатать символ валюты и десятичное число из n цифр, выровненное по правому краю в Python - PullRequest
0 голосов
/ 20 декабря 2018

Я делаю калькулятор EMI, который отображает таблицу амортизации после отображения ежемесячных EMI.

Как правильно выровнять символ валюты и любое десятичное число, состоящее из n цифр?

Iпопытался выровнять по правому краю символ и сумму валюты с помощью '{0}{1:5.2f}'.format(rupee, amount), но это не решило проблему с указанием неверной строки формата.

суммы представляют собой числа с плавающей запятой с более чем двумя десятичными знаками, их необходимо округлитьдо 2 десятичных знаков.

Вот код, который отображает 4 значения суммы (я использую INR в качестве символа валюты):

rupee = chr(8377)
print('{0}{1:.2f}'.format(rupee, amount1))
print('{0}{1:.2f}'.format(rupee, amount2))
print('{0}{1:.2f}'.format(rupee, amount3))
print('{0}{1:.2f}'.format(rupee, amount4))

В этом примере кода необходимо внести некоторые изменениявыровнять по правому краю символ валюты и сумму, но я не могу понять это.

Фактический результат:

$1.07
$22.34
$213.08
$4.98

Ожидаемый результат:

  $1.07
 $22.34
$213.08
  $4.98

Принимая символ $ в качестве символа валюты, поскольку символ рупии нельзя набирать непосредственно с клавиатуры.

Ответы [ 2 ]

0 голосов
/ 21 декабря 2018

Немного расширяя предыдущий ответ:

rupee = u'\u20B9'
amounts = [12345.67, 1.07, 22.34, 213.08, 4.98]

for amount in amounts:
    print('{:>10}'.format(rupee + '{:>.2f}'.format(amount)))

Вывод:

 ₹12345.67
     ₹1.07
    ₹22.34
   ₹213.08
     ₹4.98
0 голосов
/ 20 декабря 2018

Если вы знаете максимальное количество символов в вашем выводе, то вы можете сделать что-то вроде следующего.См. Спецификация формата Mini-Language для различных доступных спецификаторов формата.

amounts = ['$1.07', '$22.34', '$213.08', '$4.98']

for amount in amounts:
    print('{:>8}'.format(amount))

# OUTPUT
#   $1.07
#  $22.34
# $213.08
#   $4.98
...