簡體   English   中英

你如何將所有小數位四舍五入到2?

[英]How do you round all decimal places to 2?

新手到 Python 和一般的代碼新手。 我“知道”如何使用圓形 function 並且可以將它用於具有超過 2 個小數位的數字。 我的問題是如何獲得只有一位小數的數字來添加零以使其保留兩位小數。 例如美元金額?

這是我寫的東西,歡迎任何離題或批評的建議。 我已經知道我的數學有點“創造性”。 我可以保證有一個更簡單的方法,但我只是讓它工作。 也許如果有人可以向我解釋我如何在這段代碼中使用 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: $1.10

請注意,您甚至不需要行each_pay_str = str(round(each_pay, 2)) 通常最好保留一個數字(浮點數),僅在需要時進行轉換。 在這里,f-string 自動將其轉換為字符串。

你可以這樣做:

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

或者為了讓它更優雅,你可以這樣做:

f'{f:%.2f}'

需要意識到的是round()需要一個浮點數並給你一個浮點數。 因此, round(1.234, 2)將返回1.23 但是,答案仍然是浮動的。 您要問的是數字的字符串表示形式,即它在屏幕上的顯示方式,而不是實際值。 (畢竟1.1.0實際上只是相同的值, 0對浮點數沒有任何作用)

你可以這樣做:

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

或者:

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

這也適用於不需要那么多數字的數字:

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

這樣做的原因是 f-string 只是創建了一個表示數值的字符串值。

使用 python 的“格式”function 添加N個小數位

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

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM