我想使用格式化的字符串四捨五入整數,但它必須通過一個參數詢問。我有以下代碼,其中p是要舍入的小數位數。python中四捨五入的格式化字符串
def fahrenheit_to_celsius(t, p):
celsius = ((t - 32.0) * 5.0/9.0)
print "%f "%(celsius)
我想使用格式化的字符串四捨五入整數,但它必須通過一個參數詢問。我有以下代碼,其中p是要舍入的小數位數。python中四捨五入的格式化字符串
def fahrenheit_to_celsius(t, p):
celsius = ((t - 32.0) * 5.0/9.0)
print "%f "%(celsius)
>>> def f_to_c(t, p=0):
... return round(((t - 32.0) * 5.0/9.0), p)
...
>>> print("{}".format(f_to_c(10, 2)))
-12.22
def fahrenheit_to_celsius(t, p):
celsius = (t - 32.) * 5./9.
return "{0:.{1}f}".format(celsius, p)
print fahrenheit_to_celsius(76.2, 2) # prints "24.56"
print fahrenheit_to_celsius(0, 0) # prints "-18"
[Here](http://docs.python.org/library /string.html#format-string-syntax)是'format'字符串方法的文檔。 – 2012-03-30 07:44:04
在格式說明,%
和f
之間添加.*
。 '.'
指定小數,'*'
指定要從參數列表中選取的寬度。
def fahrenheit_to_celsius(t, p):
celsius = ((t - 32.0) * 5.0/9.0)
print "%.*f"%(p,celsius) ## pick width from argument.
print "%.2f"%(celsius) ## always 2 decimals
從printf
手冊頁面:
字段寬度
可選十進制數字字符串(具有非零第一位數)指定最小字段寬度。如果轉換後的值的字符數少於字段寬度,則會在左側填充空格(如果已經給出左側調整標記,則右側填充空格)。可以使用
"*"
或"*m$"
(對於某個十進制整數m)指定字段寬度分別在下一個參數或第m個參數中給出,而該參數必須是int類型,而不是十進制數字字符串。負字段寬度取爲'-'
標誌,後跟正字段寬度。在任何情況下,不存在或小的字段寬度都會導致字段的截斷;如果轉換結果寬於字段寬度,則字段將展開以包含轉換結果。
'「{0}」。format(round(1,2))'打印「1.0」而不是「1.00」作爲等待... – eumiro 2012-03-30 07:46:44