Float argümanları (genellikle bir anlamlı basamaklı tamsayı veya ondalık sayılar) alan bir işlevim var ve değerleri iki ondalık basamaklı bir dizede (5 -> 5.00, 5.5 -> 5.50, vb.) Çıkarmam gerekiyor. Bunu Python'da nasıl yapabilirim?
Float argümanları (genellikle bir anlamlı basamaklı tamsayı veya ondalık sayılar) alan bir işlevim var ve değerleri iki ondalık basamaklı bir dizede (5 -> 5.00, 5.5 -> 5.50, vb.) Çıkarmam gerekiyor. Bunu Python'da nasıl yapabilirim?
Yanıtlar:
Bu gönderi bir süre burada olabileceğinden, python 3 sözdizimine de işaret edelim:
"{:.2f}".format(5)
f-string biçimlendirmesi:
Bu Python 3.6'da yeniydi - dize, her zamanki gibi tırnak işaretleri arasına yerleştirilir, başına ham dizede f'...
yaptığınız gibi eklenir r'...
. Ardından, dizgenizin, değişkenlerinizin, sayılarınızın, küme parantezlerinizin içine koymak istediğiniz her şeyi yerleştirirsiniz f'some string text with a {variable} or {number} within that text'
- ve Python, bu yöntemin çok daha okunaklı olması dışında önceki dize biçimlendirme yöntemlerinde olduğu gibi değerlendirir.
>>> foobar = 3.141592
>>> print(f'My number is {foobar:.2f} - look at the nice rounding!')
My number is 3.14 - look at the nice rounding!
Bu örnekte , ondalık basamaklarla biçimlendirdiğimizi görebilirsiniz. , önceki dize biçimlendirme yöntemlerine benzer şekilde biçimlendirdiğimizi görebilirsiniz.
NB foobar
bir sayı, değişken veya hatta bir ifade olabilir, örn.f'{3*my_func(3.14):02f}'
.
İleriye dönük olarak, yeni kodla, f-dizelerini yaygın% s veya str.format () yöntemlerine tercih ederim çünkü f-dizeleri çok daha okunabilir ve genellikle çok daha hızlıdır .
Dize biçimlendirme:
print "%.2f" % 5
math.floor
math.ceil
round
Dize Biçimlendirme:
a = 6.789809823
print('%.2f' %a)
VEYA
print ("{0:.2f}".format(a))
Round Fonksiyonu kullanılabilir:
print(round(a, 2))
Round () ile ilgili iyi olan şey, bu sonucu başka bir değişkene kaydedip sonra başka amaçlar için kullanabiliriz.
b = round(a, 2)
print(b)
round
. Sadece teşhir amaçlı kullanılmamalıdır.
round(5.0001, 2)
-> 5.0
, değil'5.00'
Numarayı yalnızca farklı şekilde görüntülemek yerine gerçekten değiştirmek istiyorsanız format () kullanın
2 ondalık basamağa biçimlendirin:
format(value, '.2f')
misal:
>>> format(5.00000, '.2f')
'5.00'
Bunun eski bir soru olduğunu biliyorum ama cevabı kendim bulmakta zorlanıyordum. İşte bulduğum şey:
Python 3:
>>> num_dict = {'num': 0.123, 'num2': 0.127}
>>> "{0[num]:.2f}_{0[num2]:.2f}".format(num_dict)
0.12_0.13
Python 3 sözdizimini kullanarak:
print('%.2f' % number)
Giriş çağrısı sırasında sınırlı iki ondalık basamaklı bir kayan nokta değeri elde etmek istiyorsanız,
Şuna bir bak ~
a = eval(format(float(input()), '.2f')) # if u feed 3.1415 for 'a'.
print(a) # output 3.14 will be printed.
eval
bir ip round
? İçinde beslemek eğer bu yana Neyse bu bile düzgün çalışmıyor 5
, Alacağınız 5.0
yerine 5.00
OP istiyor gibi.
nan
ve için çalışmaz inf
.
d=3
"{:.{}f}".format(5, d)