2

我正在制作一个 EMI 计算器,它在显示每月 EMI 后显示摊销表。

如何正确对齐货币符号和任何 n 位十进制数?

我尝试使用正确对齐货币符号和金额,'{0}{1:5.2f}'.format(rupee, amount)但它没有解决说明格式字符串不正确的问题。

金额是小数点后 2 位以上的浮点数,需要四舍五入到小数点后 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

$将符号作为货币符号,因为卢比符号不能直接从键盘输入。

4

2 回答 2

2

稍微扩展前面的答案:

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
于 2018-12-20T21:21:33.563 回答
1

如果您知道输出中的最大字符数,那么您可以执行以下操作。有关各种可用的格式说明符,请参阅格式规范迷你语言

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
于 2018-12-20T20:30:48.277 回答