我總是想用小數點分隔最後兩位數字。 (點)L-如何用Python中的點分隔最後兩位數字
print("{:.2f}".format(300));
輸出:
300.00
預期輸出:
3.00
接着
print("{:.2f}".format(333333300));
輸出:
333333300.00
預期輸出:
3333333.00
我怎樣才能改變我的代碼,使我得到預期的輸出呢?
我總是想用小數點分隔最後兩位數字。 (點)L-如何用Python中的點分隔最後兩位數字
print("{:.2f}".format(300));
輸出:
300.00
預期輸出:
3.00
接着
print("{:.2f}".format(333333300));
輸出:
333333300.00
預期輸出:
3333333.00
我怎樣才能改變我的代碼,使我得到預期的輸出呢?
300.00
是編號300
的表示。 3.00
是編號3
的表示。這是兩個不同的值。 Python沒有辦法將300
表示爲3
。
假設你真的想打印3.00
(這對於幾乎每個人身邊指3
,不300
),那麼你應該100
劃分300
。
print("{:.2f}".format(300/100.0))
如果我使用此打印(「{:。2f}」。格式(2990/100))我得到這個輸出29.00,但預計是29.90 – Mounarajan
正確。你正在使用Python 2,300/100被解釋爲整數除法。你應該除以100.0來強制劃分。答案已更新。 –
使用您實際要輸出的數值,即不要在字符串表示中添加所需的'0'。
print("{:.2f}".format(3))
它是字符串格式化它確實爲你加「0」時,它會創建數量值的字符串表示,根據指定的格式化字符串。
如果我使用此打印(「{:。2f}」。格式(2990)),我得到這個輸出2990.00 ,但預計是29.90 – Mounarajan
def f(n):
a = divmod(n,100)
if a[1] < 10:
print("{}.0{}".format(a[0],a[1]))
else:
print("{}.{}".format(a[0],a[1]))
你的代碼的解釋會提高你的文章的質量。 –
divmod(a,b)。使用兩個(非複數)數字作爲參數,並在使用長除法時返回由它們的商和餘數組成的一對數。結果與(a // b,a%b) 。元組a [0]得到一個// b,一個[1]得到一個%b。如果[1] <10,比如3001,3009,a [1]將是1和9,所以格式化時,它應該加上0 –
在Python 2.6:
def myPrint(x):
print("{0:.2f}".format(x/100.00));
myPrint(2990);
29.90
你爲什麼會認爲Python格式化300 3.00?他們是不同的數字。格式只能改變數字的*表示*,而不能改變它的值。 – SiHa
@Mounarajan這就是它想要的語言。你正在賦予的精度工作在浮點數上,即300.34546,那麼2位數的精度將打印300.34,如果你給它一個int,它將增加兩個零像300.00 – wind85
數字除以100首先? – Ben