我想打印數字的精度爲2位之前的點和3之後。python在逗號前面打印2個數字
例子:
1232.352232
9.1
將顯示:
32.352
09.100
我知道
print "%.3f" % 32.352
會告訴我小數點後3位,但如何讓0點前2位如果這少於2位數字?
我想打印數字的精度爲2位之前的點和3之後。python在逗號前面打印2個數字
例子:
1232.352232
9.1
將顯示:
32.352
09.100
我知道
print "%.3f" % 32.352
會告訴我小數點後3位,但如何讓0點前2位如果這少於2位數字?
您可以指定輸出的總寬度;如果包括前導0,則數量將用零填充到最小寬度匹配:
"%06.3f" % float_number
演示:
>>> for float_number in (1232.352232, 9.1):
... print "%06.3f" % float_number
...
1232.352
09.100
注意,號碼是最小寬度!如果您需要截斷浮點數本身,你將需要使用切片:
("%06.3f" % float_number)[-6:]
這將截斷字符串從一開始刪除字符,如果超過6:
>>> for float_number in (1232.352232, 9.1):
... print ("%06.3f" % float_number)[-6:]
...
32.352
09.100
我試圖把「%02.3f」%1.1234,它不返回我01,123 – 2014-10-29 19:47:18
@SebastianB:這是因爲第一個數字必須設置爲* total *寬度。包含小數! '「%06.3f」%1.1234'的作品。 – 2014-10-29 19:48:57
哇,謝謝它的工作!這真的幫助我理解它:) +1完全當之無愧。 :) – 2014-10-29 19:57:11
x = "9,1"
def displayNum(num):
f,s = num.strip().split(',')
f = '0'*(2-len(f))+f if len(f) < 2 else f[-2:]
s = s + '0'*(3-len(s)) if len(s) < 3 else s[:3]
return ",".join([f,s])
print(displayNum(x))
09,100
如果我們談論精度,第一個肯定是'1200,352'? – 2014-10-29 19:34:56
Python在浮點數中使用*十進制點*,而不是逗號。 – 2014-10-29 19:35:59
*沒有'lf'格式*。你是不是隻是'f'? – 2014-10-29 19:37:36