2016-09-18 24 views
6

Bazı hesaplamalar yapıldıktan sonra aldığım ondalık sayısını azaltmaya çalışıyorum. benim sorunum doğar print() şuna benzer:Python numpy bilimsel gösterim sınırı ondalık sayısı

print("Mean resistivity: {res} Ohm m".format(res=np.mean(resistivity))) 

Ve bu çıkışı:

Mean resistivity: 1.6628449915450776e-08 Ohm m 

Şimdi ben ile yapıyor çalıştı 3'e basılır ondalık basamak sayısını azaltmak isteyen böyle dize biçimlendirme,: Ancak

print("Mean resistivity: {res:.3f} Ohm m".format(res=np.mean(resistivity))) 

, bu kod baskılar:

Mean resistivity: 0.000 Ohm m 

Ne gerçekten istediğiniz şudur:

Mean resistivity: 1.663e-8 Ohm m 

nasıl sadece bilimsel gösterim olarak ama sadece 3 ondalık basamaklı görüntülenecek res biçimlendirebilirsiniz?

+0

bir biçim baskı [belirteci] (https://docs.python.org/2/library/string.html kullanın #formatspec) – dawg

cevap

6

Bu python3 mü? Eğer öyleyse bu çalışması gerekir: {res:.3E}

@edit O python2 ile de çalışması gerekir - spec

+0

Python 3'te de doğrulandı – Jeon

+0

Evet, teşekkürler! Çalışıyor :) Ayrıca bir e harfi ile çalışıyor. – Dartmouth

+1

@Dartmouth belgelerine yer işareti koymaya giderken, python 3.x'e geçtiğinizde, 2.x belgelerinde bulunan küçük geliştirmeler olduğunu bilmelisiniz. Ayrıca, python 3.6'nın (yakında geldiğinde) aynı mini formatlama dilini paylaşan daha basit bir uygulamaya sahip olduğunu unutmayın. Gelecek için bunu işaretleyin ... https://docs.python.org/3.6/reference/lexical_analysis.html#f-strings – NaN

İlgili konular