你如何将所有小数位四舍五入到 2?

How do you round all decimal places to 2?

新手到 Python 并且总体上是 Code 的新手。我“知道”如何使用 round 函数,并且可以将它用于小数点后两位以上的数字。我的问题是如何获得只有一位小数的数字加上零以使其保留两位小数。比如美元金额?

这是我写的东西,欢迎任何偏离主题的建议或批评。我已经知道我的数学有点“创造性”。我可以保证有一种更简单的方法,但我只是让它起作用。也许如果有人可以向我解释我如何在此代码中使用 f 弦,那也很棒。

谢谢

print("Welcome to the tip calculator!")
total = input("What was the total bill? ")
tip = input("How much tip would you like to give? 10, 12, or 15? ")
split = input("How many people to split the bill? ")

total_float = float(total)
tip_float = float(tip)
tip_float /= 10.00**2.00
tip_float += 1.00
split_float = float(split)

each_pay = total_float * tip_float
each_pay /= 1.00
each_pay /=split_float

each_pay_str = str(round(each_pay, 2))
print("Each person should pay: $",each_pay_str )

您可以使用 f-string:

each_pay = 1.1
print(f"Each person should pay: ${each_pay:.2f}") # Each person should pay: .10

请注意,您甚至不需要行 each_pay_str = str(round(each_pay, 2))。通常最好保留一个数字(浮点数),只在需要时才转换它。在这里,f-string 自动将其转换为字符串。

你可以这样做:

x = '%.2f' % (f)

或者为了让它更优雅,你可以这样做:

f'{f:.2f}'

需要注意的是,round() 需要一个浮点数并给你一个浮点数。所以,round(1.234, 2) 会 return 1.23。然而,答案仍然是浮动的。您要问的是数字的字符串表示形式,即它在屏幕上的显示方式,而不是实际值。 (毕竟,1.1.0 实际上只是相同的值,0 对浮点数没有任何作用)

你可以这样做:

print(f'{1.234:.2f}')

或:

s = f'{1.234:.2f}'
print(s)

这也适用于不需要那么多数字的数字:

print(f'{1:.2f}')

这样做的原因是 f 字符串只是创建一个表示数值的字符串值。

使用python的“格式”功能添加N位小数

print(10.1) <-------- 将打印 10.1

print(format(10.1,".2f")) <-------- 会打印10.10(.2f表示要加的小数)