将变量值打印为两位小数

9

我正在尝试创建一个货币转换器,它可以将最终值打印到2位小数。

我已经创建了整个程序,这只是其中的一小部分,但是我无法让程序打印到2位小数。我尝试使用先前提出的"%.2f",但不起作用,有人能建议我需要做什么吗?

到目前为止,我的程序是:

conversion_Menu= "What do you want to convert?\n1.Pound Sterling\n2.Euro\n3.USD\n4.Japanese Yen"
x = input (conversion_Menu)
if x == "1":
    sterling_Menu = "What do you want to convert to?\n1.Euro's\n2.USD\n3.Japanese Yen"
    y = input (sterling_Menu)
    currency_Total = float(input("How much do you wish to exchange?"))
    total_Exchange = currency_Total * sterling_Conversion
    print ("This converts to", total_Exchange) 

我希望确保变量total-Exchange中存储的值始终为两位小数。


2
你可以乘以100转换为整数,然后再转回双精度浮点数并除以100吗? - Matt
2个回答

7

已使用Python 3.0进行测试。

t = 12.987876
print(f'This converts to {t:.2f}')

结果:

这将转换为12.99


2
这个答案是正确的。请不要标记您不喜欢的答案(即使您认为它们是不正确的)。留下评论帮助作者改进他们的答案。只有违反网站规则的答案才应该被标记。 - giusti
我同意这个观点,也就是说这个问题是一个重复的问题,可能应该被关闭(而且它也非常老旧)。因此,不需要进行标记。 - Jean-François Fabre
这是现在做这件事的“最佳”方式。 - George Ogden

6
如果您希望将值存储为两位小数,请使用round()函数:
>>>t = 12.987876
>>>round(t,2)
#12.99

如果您需要将变量保存更精确(例如进行进一步的计算),但输出结果需要四舍五入,建议使用"%.2f",这对我来说非常完美:

>>>t = 12.987876
>>>print "This converts to %.2f" % t
#This converts to 12.99

4
或者 '{:.2f}'.format(value) - Bakuriu

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接